我正在将 System.Media.Brush 转换为 System.Drawing.Brush,但在更改颜色之后。它会在转换器上引发“ token 无效”错误。
private Brush DrawingColorToBrush(System.Drawing.Color color)
{
Brush ret;
BrushConverter m;
m = new BrushConverter();
ret = (Brush)m.ConvertFromString(color.ToArgb().ToString("X8"));
return ret;
}
颜色来自 System.Windows.Forms.ColorDialog
最佳答案
如果您将方法更改为此...,您的代码将正常工作
private Brush DrawingColorToBrush(System.Drawing.Color color)
{
Brush ret = null;
BrushConverter m = new BrushConverter();
string s = "#" + color.ToArgb().ToString("X8");
if (m.CanConvertFrom(typeof (string)))
{
ret = (Brush) m.ConvertFromString(s);
}
return ret;
}
关键是在字符串前加上“#”字符。
关于C# WPF token 在 BrushConverter 上无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17635073/