Как создать систему.Рисунок.Цвет из его шестнадцатеричной строки RGB?


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

6 77

6 ответов:

ColorTranslator.FromHtml("#FF00FF");

вы можете использовать систему.Рисунок.Статический метод ColorTranslator от FromHtml.

использование:

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

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

using System.Drawing

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

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

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

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

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

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

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

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