Come creare un System.Drawing.Color dalla sua stringa RGB esadecimale?


Risposte:



62

È possibile utilizzare il metodo statico System.Drawing.ColorTranslator FromHtml.

uso:

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

18

È piuttosto facile quando usi la Convert-Class . La ToInt32funzione ha un sovraccarico con un secondo parametro che rappresenta la base in cui si trova la stringa.

using System.Drawing

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

9

Usa la classe ColorConverter :

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

Può anche essere convertito dai colori standard denominati ad esempio ConvertFromString ("Blue")

Vedere qui per una discussione sui meccanismi di conversione del tipo .NET standard.


1

Se il colore che vuoi usare è una costante, in C # usa System.Drawing.Color.FromArgb (0xFF00FF). Questo è leggermente più veloce di System.Drawing.Color.FromNameo System.Drawing.Color.FromHtml, poiché l'analisi da una stringa a un numero intero viene eseguita in fase di compilazione anziché in fase di esecuzione.


0

Il metodo FromName ha funzionato per me

System.Drawing.Color.FromName("#FF00FF");
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.