我正在查找返回系统颜色列表的属性。我查看了SystemColors
和Colors
类。我无法找到只返回颜色列表的属性。系统颜色列表属性
我知道有一些解决方案来获取系统颜色,但我宁愿使用内置属性。
奇怪的是,该Fonts
类有SystemFontFamilies
属性,返回的System
Fonts
名单和Colors
不具备这样的特性。
我正在查找返回系统颜色列表的属性。我查看了SystemColors
和Colors
类。我无法找到只返回颜色列表的属性。系统颜色列表属性
我知道有一些解决方案来获取系统颜色,但我宁愿使用内置属性。
奇怪的是,该Fonts
类有SystemFontFamilies
属性,返回的System
Fonts
名单和Colors
不具备这样的特性。
这取决于您在寻找什么以及您是否有权访问System.Drawing(例如,在Azure中不可用)。
System.Drawing.SystemColors会告诉您OS用于绘制系统部件的颜色。
的System.Drawing.SystemColors类的每个属性是 的System.Drawing.Color结构,它是一个视窗显示 元件的颜色。
或者你可以使用System.Drawing.KnownColor枚举使用Enum.GetValues() Return Type的颜色列表。
由于问题已经被更新,以显示你正在使用,那么请参阅如何访问颜色此refernace: https://blogs.msdn.microsoft.com/wpf/2010/11/30/systemcolors-reference/
你可以做这样的事情,这是从我自己的一个颜色的例子之一它使用反射
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;
可能duplica [Enum.GetValues()返回类型]的te。 'Colors'枚举可以用来给你这个数组。 然后,你可以做你想要的值。(https://stackoverflow.com/questions/1398664/enum-getvalues-return-type) – krillgar
你使用的是winform,wpf,webapp等平台? – John
@krillgar我不认为OP想要'System.Colors'的所有枚举值,但默认为窗口使用的边界,标题栏,背景等定义的颜色。 –