Загрузка поля со списком всех системных цветов в wpf - PullRequest
2 голосов
/ 13 августа 2011

Я создал поле со списком, которое я хотел бы загрузить всеми стандартными цветами. Я хотел бы сделать это в файле xaml.cs, а не в прямом XAML. Я нашел много примеров, чтобы сделать это в C # для .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 ]

1 голос
/ 13 августа 2011

Это сработало для меня.Попробуйте отладку.Возможно, вы получаете цвета, но проблема в том, чтобы добавить элементы.

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

        }
0 голосов
/ 13 августа 2011
  1. Ваш код получает свойства Color, а не Colors
  2. Цвета этого класса имеют тип System.Windows.Media.Color (вместо System.Drawing.Color)
0 голосов
/ 13 августа 2011

Вы можете импортировать стиль через ResourceDictionary

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

И применить стиль поля со списком.

...