通过对象的填充获取颜色名称/将画笔转换为字符串c#([uwp)

时间:2018-12-08 17:37:12

标签: c# colors windows-10-universal brush

我有一个用颜色填充的矩形(每次都是不同的颜色)。我希望能够通过该矩形上填充的颜色来获得颜色的名称,例如“绿色”。有人知道我该怎么做吗? 我尝试了以下方法:

        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;
        }

我基本上是想将组合框的默认项更改为矩形填充颜色的默认项。 通过调试,我可以看到我的代码实际上可以获取画笔,甚至可以将其转换为纯色画笔,但是纯色画笔为十六进制格式,因此我需要名称本身。 有谁知道该怎么办?

1 个答案:

答案 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;
            }
        }