WPF:将HTMLRGB颜色值转化为Color对象的两种方式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WPF:将HTMLRGB颜⾊值转化为Color对象的两种⽅式(1)⽅式⼀:
Color color1 = (Color)System.Windows.Media.ColorConverter.ConvertFromString("#E0E0E0");
(2)⽅式⼆:
Color color2 = ConvertToColor("#E0E0E0");
public static System.Windows.Media.Color ConvertToColor(string value)
{
int r = 0, g = 0, b = 0;
if (value.StartsWith("#"))
{
int v = Convert.ToInt32(value.Substring(1), 16);
r = (v >> 16) & 255; g = (v >> 8) & 255; b = v & 255;
}
return System.Windows.Media.Color.FromRgb(Convert.ToByte(r), Convert.ToByte(g), Convert.ToByte(b));
}
记住:如果是将RGB(128,24,34)转换为⼗六进制,可以分别将数字转换为⼗六进制:
public string toHex(int digit)
{
string hexDigit = digit.ToString("X");
if (hexDigit.Length == 1)
{
hexDigit = "0" + hexDigit;
}
return hexDigit;
}
然后拼接得到⼗六进制:
string colorCode = "#" +toHex(Color.R) +toHex(Color.G) +toHex(Color.B);
(3)⽅法三
private static Color CreateColorFromString(string s)
{
if (pare(s, "None") == 0)
{
return Colors.Transparent;
}
s = s.Replace("#", "");
byte result = 0;
byte num2 = 0;
byte num3 = 0;
byte num4 = 0;
byte.TryParse(s.Substring(0, 2), NumberStyles.HexNumber, (IFormatProvider)null, out result);
byte.TryParse(s.Substring(2, 2), NumberStyles.HexNumber, (IFormatProvider)null, out num2);
byte.TryParse(s.Substring(4, 2), NumberStyles.HexNumber, (IFormatProvider)null, out num3);
byte.TryParse(s.Substring(6, 2), NumberStyles.HexNumber, (IFormatProvider)null, out num4);
return System.Windows.Media.Color.FromArgb(result, num2, num3, num4);
}。