Загрузка поля со списком всех системных цветов в wpf

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

Решение

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

        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;component\themes/aero.normalcolor.xaml" />

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

  1. Ваш код получает свойства Color и не Colors
  2. Цвета в этом классе имеют тип System.Windows.Media.Color (вместо System.Drawing.Color)
Другие вопросы по тегам