我有一个用颜色填充的矩形(每次都是不同的颜色)。我希望能够通过该矩形上填充的颜色来获得颜色的名称,例如“绿色”。有人知道我该怎么做吗? 我尝试了以下方法:
Brush a = rect.Fill;
Color color = ((SolidColorBrush)a).Color;
string thecolor = color.ToString();
switch (thecolor)
{
case "Red": furText.SelectedIndex = 0; break;
case "Blue": furText.SelectedIndex = 1; break;
case "Yellow": furText.SelectedIndex = 2; break;
case "Pink": furText.SelectedIndex = 3; break;
case "Green" : furText.SelectedIndex = 4;break;
}
我基本上是想将组合框的默认项更改为矩形填充颜色的默认项。 通过调试,我可以看到我的代码实际上可以获取画笔,甚至可以将其转换为纯色画笔,但是纯色画笔为十六进制格式,因此我需要名称本身。 有谁知道该怎么办?
答案 0 :(得分:1)
您可以尝试执行此操作。您的颜色名称将为selectedcolorname
Brush a = rect.Fill;
Color color = ((SolidColorBrush)a).Color;
string selectedcolorname;
foreach (var colorvalue in typeof(Colors).GetRuntimeProperties())
{
if ((Color)colorvalue.GetValue(null) == color)
{
selectedcolorname = colorvalue.Name;
}
}