我正在寻找一个返回系统颜色列表的属性。我查看了SystemColors
和Colors
类。我找不到一个只返回颜色列表的属性。
我知道有一些解决方案可以获得系统颜色,但我宁愿使用内置属性。
奇怪的是,Fonts
类具有返回SystemFontFamilies
System
列表的Fonts
属性,而Colors
没有此类属性。
答案 0 :(得分:0)
这取决于您要查找的内容以及您是否有权访问System.Drawing(例如,Azure中不可用)。
System.Drawing.SystemColors将告诉您操作系统用于绘制系统部分的颜色。
System.Drawing.SystemColors类的每个属性都是 System.Drawing.Color结构,是Windows显示的颜色 元件。
或者您可以使用Enum.GetValues() Return Type使用System.Drawing.KnownColor枚举颜色列表。
由于问题已更新以显示您正在使用,请参阅此参考有关如何访问颜色: https://blogs.msdn.microsoft.com/wpf/2010/11/30/systemcolors-reference/
答案 1 :(得分:0)
你可以做这样的事情,这是我自己的一个使用反射的颜色下拉控件的例子
private Dictionary<string, Color> colours = typeof(Colors)
.GetRuntimeProperties()
.Select(c => new
{
Color = (Color)c.GetValue(null),
Name = string.Join(" ", splitCapital(c.Name))
}).ToDictionary(x => x.Name, x => x.Color);
您还需要以下“使用”
using System.Reflection;