48 votes

Comment convertir le code couleur en media.brush ?

J'ai un rectangle que je veux remplir avec une couleur. Lorsque j'écris Fill = "#FFFFFF90" , une erreur s'affiche :

Impossible de convertir implicitement le type 'string' en 'System.Windows.Media.Brush

Merci de me donner quelques conseils.

118voto

H.B. Points 76352

Vous pouvez utiliser le même mécanisme que le système de lecture XAML utilise : Convertisseurs de type

 var converter = new System.Windows.Media.BrushConverter();
var brush = (Brush)converter.ConvertFromString("#FFFFFF90");
Fill = brush;

34voto

SLaks Points 391154

Dans le code, vous devez explicitement créer une instance Brush

 Fill = new SolidColorBrush(Color.FromArgb(0xff, 0xff, 0x90))

2voto

ADM-IT Points 51

Pour WinRT (application Windows Store)

 using Windows.UI;
using Windows.UI.Xaml.Media;

    public static Brush ColorToBrush(string color) // color = "#E7E44D"
    {
        color = color.Replace("#", "");
        if (color.Length == 6)
        {
            return new SolidColorBrush(ColorHelper.FromArgb(255,
                byte.Parse(color.Substring(0, 2), System.Globalization.NumberStyles.HexNumber),
                byte.Parse(color.Substring(2, 2), System.Globalization.NumberStyles.HexNumber),
                byte.Parse(color.Substring(4, 2), System.Globalization.NumberStyles.HexNumber)));
        }
        else
        {
            return null;
        }
    }

0voto

Hugh Points 147

Pour plus de simplicité, vous pouvez créer une extension : -

     public static SolidColorBrush ToSolidColorBrush(this string hex_code)
    {
        return (SolidColorBrush)new BrushConverter().ConvertFromString(hex_code);
    }

Et puis à utiliser :-

  SolidColorBrush accentBlue = "#3CACDC".ToSolidColorBrush();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X