Voglio creare un System.Drawing.Colorda un valore simile #FF00FFo FF00FFsenza bisogno di scrivere codice per quello. Esiste un parser integrato .NET per questo?
Voglio creare un System.Drawing.Colorda un valore simile #FF00FFo FF00FFsenza 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 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));
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.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.