我正在尝试在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
方法。因此,我不确定如何将两个字符的字符串转换为字节值。有人能告诉我怎么做吗?
答案 0 :(得分:2)
实际上,您可以在Convert.ToXXX()
中使用IValueConverter
方法。您只需在System
:Convert
前面添加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);