2

我正在将 System.Media.Brush 转换为 System.Drawing.Brush,但在我更改颜色之后。它会在转换器上引发“令牌无效”错误。

    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 在此处输入图像描述

4

1 回答 1

3

如果您将方法更改为此,您的代码将起作用...

    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;
    }

关键是在字符串前面加上“#”字符。

于 2013-07-14T00:25:04.540 回答