Quiero crear SolidColorBrush a partir de un valor hexadecimal como #ffaacc. ¿Cómo puedo hacer esto?
En MSDN, obtuve:
SolidColorBrush mySolidColorBrush = new SolidColorBrush();
mySolidColorBrush.Color = Color.FromArgb(255, 0, 0, 255);
Entonces escribí (considerando que mi método recibe color como #ffaacc
):
Color.FromRgb(
Convert.ToInt32(color.Substring(1, 2), 16),
Convert.ToInt32(color.Substring(3, 2), 16),
Convert.ToInt32(color.Substring(5, 2), 16));
Pero esto dio error como
The best overloaded method match for 'System.Windows.Media.Color.FromRgb(byte, byte, byte)' has some invalid arguments
También 3 errores como: Cannot convert int to byte.
Pero entonces, ¿cómo funciona el ejemplo de MSDN?
Respuestas:
Intenta esto en su lugar:
fuente
¿Cómo obtener color del código de color hexadecimal usando .NET?
Creo que esto es lo que buscas, espero que responda tu pregunta.
Para que su código funcione, use Convert.ToByte en lugar de Convert.ToInt ...
fuente
He estado usando:
fuente
fuente
Si no desea lidiar con el dolor de la conversión cada vez, simplemente cree un método de extensión.
Luego use así:
BackColor = "#FFADD8E6".ToBrush()
Alternativamente, si pudiera proporcionar un método para hacer lo mismo.
fuente
versión vb.net
fuente