Quero criar o SolidColorBrush a partir do valor Hex, como #ffaacc. Como posso fazer isso?
No MSDN, obtive:
SolidColorBrush mySolidColorBrush = new SolidColorBrush();
mySolidColorBrush.Color = Color.FromArgb(255, 0, 0, 255);
Então eu escrevi (considerando que meu método recebe cores 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));
Mas isso deu erro como
The best overloaded method match for 'System.Windows.Media.Color.FromRgb(byte, byte, byte)' has some invalid arguments
Também 3 erros como: Cannot convert int to byte.
Mas então como o exemplo do MSDN funciona?
Respostas:
Tente isso:
fonte
Como obter cores do código de cores hexadecimal usando o .NET?
Acho que é isso que você procura, espero que responda à sua pergunta.
Para que seu código funcione, use Convert.ToByte em vez de Convert.ToInt ...
fonte
Eu tenho usado:
fonte
fonte
Se você não quiser lidar com a dor da conversão toda vez, basta criar um método de extensão.
Então use assim:
BackColor = "#FFADD8E6".ToBrush()
Como alternativa, se você puder fornecer um método para fazer a mesma coisa.
fonte
versão vb.net
fonte