在wpf中加载包含所有系统颜色的组合框



我已经创建了一个组合框,我想用所有的标准颜色加载。我想在XAML. cs文件中而不是直接的XAML中做到这一点。我在。net的c#中找到了很多这样做的例子,但没有WPF。

我发现下面的代码在。net中运行,似乎prop.PropertyType.FullName永远不等于"System.Drawing.Color"),我通过它调试,唯一的值,System.Reflection.PropertyInfo等于有意义的是System.Windows.Media.ColorContext。但是当我尝试这个时,它没有返回任何颜色。

foreach (System.Reflection.PropertyInfo prop in typeof(Color).GetProperties())
{
if (prop.PropertyType.FullName == "System.Drawing.Color")
comboBox1.Items.Add(prop.Name);
}

欢迎提出任何建议或意见。

谢谢!

这对我很有效。尝试调试。你可能会得到颜色,但问题是添加项目。

        foreach (System.Reflection.PropertyInfo info in typeof(Colors).GetProperties())
        {
            Debug.WriteLine(info.Name);
        }

可以通过ResourceDictionary导入样式

<ResourceDictionary Source="pack://application:,,,/PresentationFramework.Aero;V4.0.0.0;31bf3856ad364e35;componentthemes/aero.normalcolor.xaml" />

并应用组合框的样式

  1. 你的代码得到Color而不是Colors的属性
  2. 该类中的颜色类型为System.Windows.Media.Color(而不是System.Drawing.Color)

最新更新