it-swarm.com.de

Wie erstellt man eine System.Drawing.Color aus ihrer hexadezimalen RGB-Zeichenfolge?

Ich möchte einen System.Drawing.Color aus einem Wert wie #FF00FF oder FF00FF erstellen, ohne dafür Code schreiben zu müssen. Gibt es dafür einen integrierten .NET-Parser?

78
Jader Dias
ColorTranslator.FromHtml("#FF00FF");
154
João Angelo

Sie können die statische Methode System.Drawing.ColorTranslator FromHtml verwenden.

benutzen:

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

Es ist ziemlich einfach, wenn Sie die Convert-Class verwenden. Die Funktion ToInt32 hat eine Überladung mit einem zweiten Parameter, der die Basis darstellt, in der sich der String befindet.

using System.Drawing

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

Verwenden Sie die ColorConverter -Klasse:

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

Dies kann auch von den genannten Standardfarben konvertiert werden, z. ConvertFromString ("Blau")

Unter hier finden Sie eine Erläuterung der Standard-.NET-Typumwandlungsmechanismen.

9
Phil Devaney

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 Parsing von einer Zeichenfolge in eine Ganzzahl nicht zur Laufzeit, sondern zur Kompilierzeit erfolgt.

1
Michael Rodby

Die FromName-Methode hat für mich funktioniert

System.Drawing.Color.FromName("#FF00FF");
0
bicbmx