C# WPF token 在 BrushConverter 上无效

标签 c# wpf colors token colordialog

我正在将 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 enter image description here

最佳答案

如果您将方法更改为此...,您的代码将正常工作

    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/

相关文章:

c# - 我可以在 Entity Framework 的 Where 方法中使用自定义委托(delegate)方法吗?

c# - 如何以编程方式获取 (ASP).NET 应用程序分配的总内存?

c# - 最佳模拟库

c# - 如何将项目插入 List<T> 而不会将该索引处的项目撞到后面?

WPF 应用程序和操作系统

java - 通过动画过渡动态更改背景颜色

wpf - 如何为 VSE 2013 桌面安装 MVVMLight 片段

wpf - 在“添加新项目”窗口中找不到 ResourceDictionary

.net - Windows 窗体应用程序的颜色选择器

python - 如何设置某些 Tkinter 小部件的边框颜色?