it-swarm.com.ru

Как создать System.Drawing.Color из шестнадцатеричной строки RGB?

Я хочу создать System.Drawing.Color из значения, такого как #FF00FF или FF00FF, без необходимости писать код для этого. Для этого есть встроенный парсер .NET?

78
Jader Dias
ColorTranslator.FromHtml("#FF00FF");
154
João Angelo

Вы можете использовать статический метод System.Drawing.ColorTranslator FromHtml.

использовать:

System.Drawing.ColorTranslator.FromHtml("#FFFFFF");
58
Pat

Это довольно легко, когда вы используете Convert-Class . Функция ToInt32 перегружена вторым параметром, который представляет базу, в которой находится строка.

using System.Drawing

Color yourColor = Color.FromARGB(Convert.ToInt32("FF00FF", 16));
15
Bobby

Используйте ColorConverter класс:

var converter = System.ComponentModel.TypeDescriptor.GetConverter( typeof( Color ) );
color = converter.ConvertFromString( "#FF00FF" );

Это также может конвертировать из стандартных именованных цветов, например ConvertFromString ("Синий")

Смотрите здесь для обсуждения стандартных механизмов преобразования типов .NET.

9
Phil Devaney

Если вы хотите использовать постоянный цвет, в C # используйте System.Drawing.Color.FromArgb (0xFF00FF). Это немного быстрее, чем System.Drawing.Color.FromName или System.Drawing.Color.FromHtml, поскольку разбор строки и целого числа выполняется во время компиляции, а не во время выполнения.

1
Michael Rodby

Метод FromName работал для меня

System.Drawing.Color.FromName("#FF00FF");
0
bicbmx