Ich möchte einen System.Drawing.Color
aus einem Wert wie #FF00FF
oder erstellen, FF00FF
ohne dafür Code schreiben zu müssen. Gibt es dafür einen in .NET integrierten Parser?
ColorTranslator.FromHtml("#FF00FF");
Sie können die statische System.Drawing.ColorTranslator-Methode FromHtml verwenden.
verwenden:
System.Drawing.ColorTranslator.FromHtml("#FFFFFF");
Es ist ziemlich einfach, wenn Sie die Konvertierungsklasse verwenden . Die ToInt32
Funktion hat eine Überladung mit einem zweiten Parameter, der die Basis darstellt, in der sich die Zeichenfolge befindet.
using System.Drawing
Color yourColor = Color.FromARGB(Convert.ToInt32("FF00FF", 16));
Verwenden Sie die ColorConverter- Klasse:
var converter = System.ComponentModel.TypeDescriptor.GetConverter( typeof( Color ) );
color = converter.ConvertFromString( "#FF00FF" );
Dies kann auch aus den benannten Standardfarben konvertiert werden, z. B. ConvertFromString ("Blau")
Sehen Sie hier für eine Diskussion über die Standard - .NET - Typ - Umwandlungsmechanismen.
Wenn die Farbe, die Sie verwenden möchten, eine Konstante ist, verwenden Sie in C # System.Drawing.Color.FromArgb (0xFF00FF)
. Dies ist etwas schneller als System.Drawing.Color.FromName
oder System.Drawing.Color.FromHtml
, da das Parsen von einer Zeichenfolge in eine Ganzzahl eher zur Kompilierungszeit als zur Laufzeit erfolgt.
Die FromName-Methode hat bei mir funktioniert
System.Drawing.Color.FromName("#FF00FF");