【问题标题】:Loading a combo box with all system colors in wpf在 wpf 中加载具有所有系统颜色的组合框
【发布时间】:2011-08-13 17:13:47
【问题描述】:

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

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

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

任何建议或 cmet 表示赞赏。

谢谢!

【问题讨论】:

    标签: wpf combobox colors systemcolors


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢!。我想我不需要那个 if 声明
    【解决方案2】:

    您可以通过ResourceDictionary 导入样式

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

    并应用组合框的样式。

    【讨论】:

      【解决方案3】:
      1. 您的代码获得Color 而不是Colors 的属性
      2. 该类中的颜色是 System.Windows.Media.Color 类型(而不是 System.Drawing.Color

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-19
        • 2012-09-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-11
        • 1970-01-01
        • 2017-02-02
        • 2011-10-13
        相关资源
        最近更新 更多