2011-06-23 26 views
3

我需要獲取C#中給定名稱的顏色的RGB值。我正在嘗試使用預定義的KnownColors枚舉,但無法弄清楚如何獲取值。從名稱的C#顏色值

任何幫助?

謝謝。

回答

3

Color類有一些有趣的靜態方法:

Color.FromName ("Red").ToArgb() 

旁邊的是,還有像一些屬性:

var c = Color.FromName ("Red"); // Or use Color.FromKnownColor (KnownColor.Red) 

Console.WriteLine (String.Format ("RGB: {0} {1} {2}", c.R, c.G, c.B); 
+1

FromKnownColor使更多因爲他說這就是他正在使用的感覺。 –

4

使用FromKnownColor

Color blue = Color.FromKnownColor(KnownColor.Blue); 

然後blue.Rblue.Gblue.B的RGB值。


或者,如果你只是想爲RGB顏色的int值,你可以這樣做:

int blueRgb = Color.FromKnownColor(KnownColor.Blue).ToArgb(); 
+0

Toargb返回一個32位int,不是他想要的。編輯:我不認爲。 –

+0

@George Duckett:你說得對,我會過分複雜:) – Town

+0

問題是我在字符串中有顏色名稱 – baruch

-1
Color c = (Color)TypeDescriptor.GetConverter(typeof(Color)).ConvertFromString("Red"); 
1
Color clr = FromKnownColor(System.Drawing.KnownColor.Blue); 
string.Format("R:{0}, G:{1}, B:{2}" clr.R, clr.G, clr.B); 

入住這Out

1

enter code here你可以做

int r = Color.FromName("Purple").ToArgb(); 
    //Or 
    int r1 = Color.FromKnownColor(KnownColor.Purple).ToArgb(); 

Color.FromName和Color.FromKnownColor witll返回Color對象,如果你想它有屬性RedGreenBlue組件。