通过对象的填充获取颜色名称/将画笔转换为字符串 c#([uwp)
Get color name by an objects's fill/ convert brush to string c#([uwp)
我有一个填充了颜色的矩形(每次都是不同的颜色)。我希望能够通过该矩形上填充的颜色来获取颜色的名称——例如 "Green"。有谁知道我该怎么做?
我尝试了以下方法:
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;
}
我基本上是在尝试将组合框的选定默认项目更改为矩形填充颜色的项目。
通过调试我可以看到我的代码实际上可以获取画笔,甚至可以将其转换为纯色画笔,但是纯色画笔是十六进制格式,我需要名称本身。
有人知道怎么办吗?
你可以试试这个,效果很好。您的颜色名称将在 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;
}
}
我有一个填充了颜色的矩形(每次都是不同的颜色)。我希望能够通过该矩形上填充的颜色来获取颜色的名称——例如 "Green"。有谁知道我该怎么做? 我尝试了以下方法:
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;
}
我基本上是在尝试将组合框的选定默认项目更改为矩形填充颜色的项目。 通过调试我可以看到我的代码实际上可以获取画笔,甚至可以将其转换为纯色画笔,但是纯色画笔是十六进制格式,我需要名称本身。 有人知道怎么办吗?
你可以试试这个,效果很好。您的颜色名称将在 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;
}
}