如何在.net调色板中找到颜色的名称和RGB值

如何在.net调色板中找到颜色的名称和RGB值,.net,vb.net,user-interface,charts,rgb,.net,Vb.net,User Interface,Charts,Rgb,我有一个图表,显示了作为vb.net窗体应用程序一部分的数据。图表对象可以生成非常漂亮的图片,但我需要它来匹配UI其余部分的颜色方案。如何获取调色板的RGB值 Debug.Print(Chart1.Palette.Chocolate.WHAT ARE THE RGB COLORS??!) 编辑1 注意:巧克力既是一种颜色的名称,也是.net调色板的名称。上面的帖子提到的是巧克力调色板,它包含多种颜色。巧克力在系统.Drawing.KnownColor枚举中。因此,您可以执行以下操作以获取其AR

我有一个图表,显示了作为vb.net窗体应用程序一部分的数据。图表对象可以生成非常漂亮的图片,但我需要它来匹配UI其余部分的颜色方案。如何获取调色板的RGB值

Debug.Print(Chart1.Palette.Chocolate.WHAT ARE THE RGB COLORS??!)
编辑1


注意:巧克力既是一种颜色的名称,也是.net调色板的名称。上面的帖子提到的是巧克力调色板,它包含多种颜色。

巧克力
系统.Drawing.KnownColor
枚举中。因此,您可以执行以下操作以获取其ARGB值,例如

Dim c As Color = Color.FromKnownColor(KnownColor.Chocolate)
Byte a = c.A
Byte r = c.R
Byte g = c.G
Byte b = c.B
或者简单地说

Color.FromKnownColor(KnownColor.Chocolate).A ...

struct
System.Drawing.Color
具有WebColor的静态属性:

Color c = System.Drawing.Color.Chocolate;
int r = c.R;
int g = c.G;
int b = c.B;

这将返回颜色名称:

foreach (string colorName in Enum.GetNames(typeof(System.Drawing.KnownColor))) {
    Console.WriteLine(colorName);
}
如果颜色是已知颜色,则
System.Drawing.Color
ToString()
方法将返回颜色名称,否则a、R、G、B值:

System.Drawing.Color.Chocolate.ToString()  --> "Color [Chocolate]"
System.Drawing.Color.FromArgb(254).ToString()  --> "Color [A=0, R=0, G=0, B=254]"


调色板是一组选定的颜色。这是一个调色板:

这是另一个调色板:


最后,我使用.NET Reflector找到了答案: 在
System.Web.UI.DataVisualization.Charting.Utilities
命名空间中,有一个内部静态类
ChartPaletteColors
。因为它是内部的,所以您无法访问它。但是reflector显示了调色板是如何初始化的。从中我得到了以下选项板:

Berry = { BlueViolet, MediumOrchid, RoyalBlue, MediumVioletRed, Blue, BlueViolet, Orchid, MediumSlateBlue, ARGB(0xc0, 0, 0xc0), MediumBlue, Purple }
BrightPastel = { ARGB(0x41, 140, 240), ARGB(0xfc, 180, 0x41), ARGB(0xe0, 0x40, 10), ARGB(5, 100, 0x92), ARGB(0xbf, 0xbf, 0xbf), ARGB(0x1a, 0x3b, 0x69), ARGB(0xff, 0xe3, 130), ARGB(0x12, 0x9c, 0xdd), ARGB(0xca, 0x6b, 0x4b), ARGB(0, 0x5c, 0xdb), ARGB(0xf3, 210, 0x88), ARGB(80, 0x63, 0x81), ARGB(0xf1, 0xb9, 0xa8), ARGB(0xe0, 0x83, 10), ARGB(120, 0x93, 190) }
Chocolate = { Sienna, Chocolate, DarkRed, Peru, Brown, SandyBrown, SaddleBrown, ARGB(0xc0, 0x40, 0), Firebrick, ARGB(0xb6, 0x5c, 0x3a) }
Default = { Green, Blue, Purple, Lime, Fuchsia, Teal, Yellow, Gray, Aqua, Navy, Maroon, Red, Olive, Silver, Tomato, Moccasin }
Earth = { ARGB(0xff, 0x80, 0), DarkGoldenrod, ARGB(0xc0, 0x40, 0), OliveDrab, Peru, ARGB(0xc0, 0xc0, 0), ForestGreen, Chocolate, Olive, LightSeaGreen, SandyBrown, ARGB(0, 0xc0, 0), DarkSeaGreen, Firebrick, SaddleBrown, ARGB(0xc0, 0, 0) }
Excel = { ARGB(0x99, 0x99, 0xff), ARGB(0x99, 0x33, 0x66), ARGB(0xff, 0xff, 0xcc), ARGB(0xcc, 0xff, 0xff), ARGB(0x66, 0, 0x66), ARGB(0xff, 0x80, 0x80), ARGB(0, 0x66, 0xcc), ARGB(0xcc, 0xcc, 0xff), ARGB(0, 0, 0x80), ARGB(0xff, 0, 0xff), ARGB(0xff, 0xff, 0), ARGB(0, 0xff, 0xff), ARGB(0x80, 0, 0x80), ARGB(0x80, 0, 0), ARGB(0, 0x80, 0x80), ARGB(0, 0, 0xff) }
Fire = { Gold, Red, DeepPink, Crimson, DarkOrange, Magenta, Yellow, OrangeRed, MediumVioletRed, ARGB(0xdd, 0xe2, 0x21) }
Light = { Lavender, LavenderBlush, PeachPuff, LemonChiffon, MistyRose, Honeydew, AliceBlue, WhiteSmoke, AntiqueWhite, LightCyan }
Pastel = { SkyBlue, LimeGreen, MediumOrchid, LightCoral, SteelBlue, YellowGreen, Turquoise, HotPink, Khaki, Tan, DarkSeaGreen, CornflowerBlue, Plum, CadetBlue, PeachPuff, LightSalmon }
SeaGreen = { SeaGreen, MediumAquamarine, SteelBlue, DarkCyan, CadetBlue, MediumSeaGreen, MediumTurquoise, LightSteelBlue, DarkSeaGreen, SkyBlue }
SemiTransparent = { ARGB(150, 0xff, 0, 0), ARGB(150, 0, 0xff, 0), ARGB(150, 0, 0, 0xff), ARGB(150, 0xff, 0xff, 0), ARGB(150, 0, 0xff, 0xff), ARGB(150, 0xff, 0, 0xff), ARGB(150, 170, 120, 20), ARGB(80, 0xff, 0, 0), ARGB(80, 0, 0xff, 0), ARGB(80, 0, 0, 0xff), ARGB(80, 0xff, 0xff, 0), ARGB(80, 0, 0xff, 0xff), ARGB(80, 0xff, 0, 0xff), ARGB(80, 170, 120, 20), ARGB(150, 100, 120, 50), ARGB(150, 40, 90, 150) }
灰度调色板由以下各项确定:
灰度值=200-(i*11)

其中
i
的范围从0到15。

不幸的是,巧克力是几种颜色的调色板。我想我的问题可以重新表述为如何在调色板中拼出颜色?谢谢,乔治。我使用这种方法来打印与屏幕上显示的颜色相匹配的RGB。但是我有点混淆了颜色和调色板。调色板似乎有很多颜色:调色板是一组选定的颜色。@akh2103我想你会被一个名为“巧克力”的RGB预定义颜色和一个名为“巧克力”的调色板弄糊涂了。它们不是一回事。而不是巧克力,考虑“地球调”调色板。没有一种颜色叫“土色调”。在系统的某个地方,有一个与“EarthTones”调色板关联的RGB颜色值列表。听起来您想列出与调色板关联的所有RGB颜色。谢谢Olivier。那么我如何打印调色板中的所有颜色呢?如果你说的是ChartColorPalette,那么似乎没有办法对颜色进行迭代。但是,本文显示了不同图表选项板的颜色图片。我添加了一个最终答案(编辑#3),其中显示了图表选项板中使用的颜色。