C#从名称获取颜色值

3

我需要在C#中根据颜色名称获取RGB值。我尝试使用预定义的KnownColors枚举,但无法弄清如何获取该值。

有什么帮助吗?

谢谢。

6个回答

4
使用FromKnownColor方法:
Color blue = Color.FromKnownColor(KnownColor.Blue);

然后是RGB值的blue.Rblue.Gblue.B


或者,如果您只想要RGB颜色的int值,可以执行以下操作:

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

ToArgb 返回一个32位整数,不是他想要的。编辑:我不这么认为。 - George Duckett
问题是我有一个字符串中的颜色名称。 - Baruch
@baruch:在这种情况下,Frederik Gheysels的答案正中要害 :) - Town

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更有意义,因为他已经说了他正在使用它。 - George Duckett

3

1
Color clr = FromKnownColor(System.Drawing.KnownColor.Blue);
string.Format("R:{0}, G:{1}, B:{2}" clr.R, clr.G, clr.B);

请查看此链接


1

输入代码在这里你可以这样做

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

使用 Color.FromName 和 Color.FromKnownColor 可以返回一个 Color 对象,并且该对象具有 Red、Green 和 Blue 组件的属性,如果您需要的话。


-1
Color c = (Color)TypeDescriptor.GetConverter(typeof(Color)).ConvertFromString("Red");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接