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


84

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

Ответы:



62

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

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

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

18

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

using System.Drawing

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

9

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

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

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

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


1

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


0

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

System.Drawing.Color.FromName("#FF00FF");
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.