Я хочу создать System.Drawing.Color
из такого значения, как #FF00FF
или FF00FF
без необходимости писать код для этого. Есть ли для этого встроенный в .NET парсер?
Я хочу создать System.Drawing.Color
из такого значения, как #FF00FF
или FF00FF
без необходимости писать код для этого. Есть ли для этого встроенный в .NET парсер?
Ответы:
ColorTranslator.FromHtml("#FF00FF");
Это довольно просто, когда вы используете 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 ("Blue")
См. Здесь обсуждение стандартных механизмов преобразования типов .NET.
Если цвет, который вы хотите использовать, является постоянным, в C # используйте System.Drawing.Color.FromArgb (0xFF00FF)
. Это немного быстрее, чем System.Drawing.Color.FromName
или System.Drawing.Color.FromHtml
, поскольку преобразование строки в целое число выполняется во время компиляции, а не во время выполнения.