public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string userColourString = value.ToString();
Debug.WriteLine(userColourString);
long userColourNumeric = 0;
Int64.TryParse(userColourString, out userColourNumeric);
var colourToUse = userColourNumeric;
return (Color)ColorConverter.ConvertFromString(string.Format("#{0:x6}", colourToUse));
}
我正在尝试使用上面的转换器方法将以下两个值转换为颜色,但是它不起作用。-2147483630 16777215
16777215
十进制值转换为FFFFFF
十六进制。我测试了您的代码,的值colourToUse
的确是"#ffffff"
。那将很容易转换为白色。
-2147483630
十进制值最终将转换为FFFFFFFF80000012
十六进制。我不确定您希望将哪种颜色转换为哪种颜色。难怪该ConvertFromString
方法会引发格式异常。
您还添加了一个VB6颜色常量的旧图表。
为了在该图表中生成颜色,您需要使用ColorTranslator.FromWin32
:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var userColourString = value.ToString();
int userColourNumeric = 0;
int.TryParse(userColourString, out userColourNumeric);
var colourToUse = userColourNumeric;
return ColorTranslator.FromWin32(colourToUse);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句