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

时间:2011-08-13 17:13:48

标签: wpf combobox colors systemcolors

我创建了一个组合框,我想加载所有标准颜色。我想在xaml.cs文件中而不是直接的XAML中执行此操作。我在C#for .NET中找到了很多这样的例子,但没有找到WPF。

我发现以下代码在.NET中运行,似乎prop.PropertyType.FullName永远不等于"System.Drawing.Color")我通过它进行了调试,而System.Reflection.PropertyInfo eqauls唯一有意义的值是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);
}

感谢任何建议或意见。

谢谢!

3 个答案:

答案 0 :(得分:1)

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

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

        }

答案 1 :(得分:0)

您可以通过ResourceDictionary

导入该样式
<ResourceDictionary Source="pack://application:,,,/PresentationFramework.Aero;V4.0.0.0;31bf3856ad364e35;component\themes/aero.normalcolor.xaml" />

并应用组合框的样式。

答案 2 :(得分:0)

  1. 您的代码的属性为Color而不是Colors
  2. 该类中的颜色属于System.Windows.Media.Color类型(而非System.Drawing.Color