3 votes

Impossible de convertir implicitement le type 'Windows.UI.Color' en 'Windows.UI.Xaml.Media.Brush'.

J'ai une ComboBox qui a une liste de couleurs, et je veux utiliser la couleur sélectionnée pour remplir un rectangle donc j'ai fait ceci :

var alwan = typeof(Colors).GetTypeInfo().DeclaredProperties;
            foreach (var item in alwan)
            {
                x.Add(item);
            }
            CbForColors.ItemsSource = x;
            CbForColors_Copy.ItemsSource = x;

private void CbForColors_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
        var color = CbForColors.SelectedItem as PropertyInfo;
        //var color2 = color.GetMethod;
        //var color3 = color2.Invoke(color,null);
        Rect_Sample.Fill = (Color)color.GetValue(null);       
}

Je reçois cette erreur :

Impossible de convertir implicitement le type ' Windows.UI.Color à Windows.UI.Xaml.Media.Brush '

Les lignes commentées que j'obtiens sont les suivantes argb pour la couleur, c'est-à-dire #FFA07FF0 (quelque chose comme ça). Qu'est-ce qui ne va pas avec ce qui est déjà implémenté et comment puis-je faire une couleur à partir de cela ? argb ? Dois-je le transformer en une chaîne de caractères, puis transformer chacun des 2 caractères en un int et les placer dans une nouvelle couleur a,r,g,b ?

6voto

loopedcode Points 4060

Il faut utiliser un SolidColorBrush :

 Rect_Sample.Fill = new SolidColorBrush( (Color)color.GetValue(null));

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