Получить имя цвета с помощью кисти заливки / преобразования объектов в строку c # ([uwp) - PullRequest
0 голосов
/ 08 декабря 2018

У меня есть прямоугольник, заполненный цветом (каждый раз это другой цвет).Я хочу иметь возможность получить название цвета, например «Зеленый», через цвет заливки на этом прямоугольнике.Кто-нибудь знает, как я могу это сделать?Я пробовал следующее:

        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 голосов
/ 08 декабря 2018

Вы можете попробовать это, он отлично работает.Ваше имя цвета будет в выбранном цветовом имени

        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;
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...