Як створити System.Drawing.Color з його шістнадцяткового рядка RGB?


84

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

Відповіді:



62

Ви можете використовувати статичний метод System.Drawing.ColorTranslator FromHtml.

використання:

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 ("Синій")

Див. Тут для обговорення стандартних механізмів перетворення типів .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.