Загрузка поля со списком всех системных цветов в 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" />
И примените стиль поля со списком.
- Ваш код получает свойства
Color
и неColors
- Цвета в этом классе имеют тип
System.Windows.Media.Color
(вместоSystem.Drawing.Color
)