Я хочу створити 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 ("Синій")
Див. Тут для обговорення стандартних механізмів перетворення типів .NET.
Якщо колір, який ви хочете використовувати, є постійним, у C # використовуйте System.Drawing.Color.FromArgb (0xFF00FF)
. Це трохи швидше, ніж System.Drawing.Color.FromName
або System.Drawing.Color.FromHtml
, оскільки аналіз рядка на ціле число виконується під час компіляції, а не під час виконання.