2017-08-10 56 views
0

我正在查找返回系统颜色列表的属性。我查看了SystemColorsColors类。我无法找到只返回颜色列表的属性。系统颜色列表属性

我知道有一些解决方案来获取系统颜色,但我宁愿使用内置属性。

奇怪的是,该Fonts类有SystemFontFamilies属性,返回的SystemFonts名单和Colors不具备这样的特性。

+0

可能duplica [Enum.GetValues()返回类型]的te。 'Colors'枚举可以用来给你这个数组。 然后,你可以做你想要的值。(https://stackoverflow.com/questions/1398664/enum-getvalues-return-type) – krillgar

+0

你使用的是winform,wpf,webapp等平台? – John

+0

@krillgar我不认为OP想要'System.Colors'的所有枚举值,但默认为窗口使用的边界,标题栏,背景等定义的颜色。 –

回答

0

这取决于您在寻找什么以及您是否有权访问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/

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;