2017-08-10 55 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;