Как мне динамически изменить цвет в C # на шестнадцатеричное значение? - PullRequest
6 голосов
/ 24 июня 2009

Я знаю, как динамически установить BackColor элемента управления в C # на именованный цвет с помощью оператора, такого как Label1.BackColor = Color.LightSteelBlue; (используя System.Drawing;)

Но как мне преобразовать шестнадцатеричное значение в System.Color, т.е. Label1.BackColor = "# B5C7DE

Ответы [ 4 ]

9 голосов
/ 24 июня 2009

Я бы использовал цветной переводчик так:

var color = ColorTranslator.FromHtml("#FF1133");

Надеюсь, это поможет.

7 голосов
/ 24 июня 2009
string hexColor = "#B5C7DE";
Color color = ColorTranslator.FromHtml(hexColor);
0 голосов
/ 24 июня 2009

Вы можете использовать метод Color.FromArgb:

Label1.BackColor = Color.FromArgb(0xB5C7DE);
0 голосов
/ 24 июня 2009
Color.FromArgb(0xB5C7DE);

или, если вы хотите разобрать строку

private Color ParseColor(string s, Color defaultColor)
{
    try
    {
        ColorConverter cc = new ColorConverter();
        Color c = (Color)(cc.ConvertFromString(s));

        if (c != null)
        {
            return c;
        }
    }
    catch (Exception)
    {
    }
    return defaultColor;
}

Эта функция просто возвращает значение по умолчанию, если она не может разобрать s. Вы могли бы просто пропустить исключение, если вы предпочитаете обрабатывать исключения самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...