Voglio creare un System.Drawing.Color
da un valore simile #FF00FF
o FF00FF
senza bisogno di scrivere codice per quello. Esiste un parser integrato .NET per questo?
Voglio creare un System.Drawing.Color
da un valore simile #FF00FF
o FF00FF
senza bisogno di scrivere codice per quello. Esiste un parser integrato .NET per questo?
Risposte:
ColorTranslator.FromHtml("#FF00FF");
È piuttosto facile quando usi la Convert-Class . La ToInt32
funzione 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));
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.
Se il colore che vuoi usare è una costante, in C # usa System.Drawing.Color.FromArgb (0xFF00FF)
. Questo è leggermente più veloce di System.Drawing.Color.FromName
o 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.