C# WPF Token недействителен на BrushConverter

Я конвертирую System.Media.Brush в System.Drawing.Brush, но после изменения цвета. Выдает ошибку "Token is valid" на конвертере.

    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

1 ответ

Решение

Ваш код будет работать, если вы измените свой метод на этот...

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

Ключ должен начинать строку с символа "#".

Другие вопросы по тегам