Ich möchte SolidColorBrush aus einem Hex-Wert wie #ffaacc erstellen. Wie kann ich das machen?
Auf MSDN habe ich:
SolidColorBrush mySolidColorBrush = new SolidColorBrush();
mySolidColorBrush.Color = Color.FromArgb(255, 0, 0, 255);
Also schrieb ich (wenn man bedenkt, dass meine Methode Farbe erhält als #ffaacc
):
Color.FromRgb(
Convert.ToInt32(color.Substring(1, 2), 16),
Convert.ToInt32(color.Substring(3, 2), 16),
Convert.ToInt32(color.Substring(5, 2), 16));
Aber das gab Fehler als
The best overloaded method match for 'System.Windows.Media.Color.FromRgb(byte, byte, byte)' has some invalid arguments
Auch 3 Fehler als: Cannot convert int to byte.
Aber wie funktioniert dann das MSDN-Beispiel?
Antworten:
Versuchen Sie stattdessen Folgendes:
quelle
Wie erhalte ich mit .NET Farbe aus hexadezimalem Farbcode?
Ich denke, das ist es, wonach Sie suchen. Ich hoffe, es beantwortet Ihre Frage.
Um Ihren Code zum Laufen zu bringen, verwenden Sie Convert.ToByte anstelle von Convert.ToInt ...
quelle
Ich habe verwendet:
quelle
quelle
Wenn Sie nicht jedes Mal mit den Schmerzen der Konvertierung fertig werden möchten, erstellen Sie einfach eine Erweiterungsmethode.
Dann verwenden Sie wie folgt:
BackColor = "#FFADD8E6".ToBrush()
Alternativ, wenn Sie eine Methode bereitstellen könnten, um dasselbe zu tun.
quelle
vb.net Version
quelle