Je veux créer SolidColorBrush à partir d'une valeur Hex telle que #ffaacc. Comment puis-je faire ceci?
Sur MSDN, j'ai:
SolidColorBrush mySolidColorBrush = new SolidColorBrush();
mySolidColorBrush.Color = Color.FromArgb(255, 0, 0, 255);
J'ai donc écrit (considérant que ma méthode reçoit la couleur comme #ffaacc
):
Color.FromRgb(
Convert.ToInt32(color.Substring(1, 2), 16),
Convert.ToInt32(color.Substring(3, 2), 16),
Convert.ToInt32(color.Substring(5, 2), 16));
Mais cela a donné une erreur car
The best overloaded method match for 'System.Windows.Media.Color.FromRgb(byte, byte, byte)' has some invalid arguments
Aussi 3 erreurs comme: Cannot convert int to byte.
Mais alors comment fonctionne l'exemple MSDN?
Réponses:
Essayez plutôt ceci:
la source
Comment obtenir une couleur à partir d'un code de couleur hexadécimal en utilisant .NET?
Je pense que c'est ce que vous recherchez, j'espère que cela répond à votre question.
Pour que votre code fonctionne, utilisez Convert.ToByte au lieu de Convert.ToInt ...
la source
J'utilise:
la source
la source
Si vous ne voulez pas faire face à la douleur de la conversion à chaque fois, créez simplement une méthode d'extension.
Ensuite, utilisez comme ceci:
BackColor = "#FFADD8E6".ToBrush()
Sinon, si vous pouviez fournir une méthode pour faire la même chose.
la source
version vb.net
la source