在Silverlight中将十六进制值转换为SolidColorBrush

时间:2011-01-12 15:54:52

标签: c# silverlight

我正在尝试在Silverlight中编写IValueConverter。此IValueConverter将返回SolidColorBrush。转换器将传递十六进制值,如“FFFF5300”。因为Silverlight没有BrushConverter类,所以我需要手动解析这个值。为了做到这一点,我有以下代码:

byte a = (byte)(Convert.ToUInt32(color.Substring(0, 2), 16));
byte r = (byte)(Convert.ToUInt32(color.Substring(2, 2), 16));
byte g = (byte)(Convert.ToUInt32(color.Substring(4, 2), 16));
byte b = (byte)(Convert.ToUInt32(color.Substring(6, 2), 16));

我的问题是,我无法在Convert.ToX中使用IValueConverter方法。因此,我不确定如何将两个字符的字符串转换为字节值。有人能告诉我怎么做吗?

3 个答案:

答案 0 :(得分:2)

实际上,您可以在Convert.ToXXX()中使用IValueConverter方法。您只需在SystemConvert前面添加System.Convert.ToXXX()命名空间。

答案 1 :(得分:1)

我不确定这是否是您要求的,但以下代码不使用Convert

byte a = byte.Parse(color.Substring(0, 2), NumberStyles.HexNumber);
// etc.

答案 2 :(得分:0)

该值必须采用以下格式“#xxxxxxxx”,

System.Drawing.ColorTranslator.FromHtml(Value);