【问题标题】:Get color name by an objects's fill/ convert brush to string c#([uwp)通过对象的填充获取颜色名称/将画笔转换为字符串 c#([uwp)
【发布时间】:2023-04-03 08:04:01
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案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;
                }
            }
    

    【讨论】:

      猜你喜欢
      • 2010-09-27
      • 1970-01-01
      • 1970-01-01
      • 2016-02-15
      • 2012-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多