Onaltılık RGB dizesinden System.Drawing.Color nasıl oluşturulur?


84

Bunun için kod yazmaya gerek kalmadan ya da System.Drawing.Colorbenzeri bir değerden bir değer oluşturmak istiyorum . Bunun için herhangi bir .NET yerleşik ayrıştırıcısı var mı?#FF00FFFF00FF

Yanıtlar:



62

System.Drawing.ColorTranslator FromHtml statik yöntemini kullanabilirsiniz.

kullanım:

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

18

Convert-Class'ı kullandığınızda oldukça kolaydır . ToInt32Fonksiyon dizisi olan taban temsil eden bir ikinci parametrenin bir aşırı vardır.

using System.Drawing

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

9

ColorConverter sınıfını kullanın :

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

Bu aynı zamanda standart adlandırılmış renklerden de dönüştürülebilir, örneğin ConvertFromString ("Mavi")

Standart .NET türü dönüştürme mekanizmalarıyla ilgili bir tartışma için buraya bakın .


1

Kullanmak istediğiniz renk sabit ise, C # kullanımında System.Drawing.Color.FromArgb (0xFF00FF). Bir dizeden tamsayıya ayrıştırma çalışma zamanında değil derleme zamanında yapıldığından, System.Drawing.Color.FromNameveya değerinden biraz daha hızlıdır System.Drawing.Color.FromHtml.


0

FromName yöntemi benim için çalıştı

System.Drawing.Color.FromName("#FF00FF");
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.