Bonjour,
Je possede une listBox contenant une série de listBoxItem.
Chaque listBoxItem "possede une couleur" exprimé par un Background ou le début du champ est noir et la fin est de la couleur choisi.
Mais lorsqu'un des Items est sélectionné, toutes la listBoxItem devient Bleu alors que je souhaiterai que sa couleur qui prennait seulement la fin du champ prennent tout le champ.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 private void AddClass() { // Création de la classe dans un élément de la liste Class c = new Class("UnamedClass" + listViewItem.Items.Count); ListBoxItem lbi = new ListBoxItem(); lbi.ContextMenu = ContextMenu_Class(lbi); TextBox txtBx = new TextBox (); txtBx.Text = c.Nom; txtBx.Foreground = Brushes.White; txtBx.Background = Brushes.Transparent; txtBx.BorderThickness = new Thickness(0); txtBx.TextChanged += new TextChangedEventHandler(txtBx_TextChanged); txtBx.GotFocus += new RoutedEventHandler(txtBx_GotFocus); lbi.Content = txtBx; lbi.Tag = c; // Coloration Color color = _colors[listViewItem.Items.Count % _colors.Count]; GradientStopCollection collection = new GradientStopCollection(); collection.Add(new GradientStop(Color.FromScRgb(0, 0, 0, 0), 0.5)); collection.Add(new GradientStop(color, 1)); System.Windows.Media.Brush br = new System.Windows.Media.LinearGradientBrush(collection); lbi.Selected += new RoutedEventHandler(lbi_Selected); lbi.Background = br; // Ajout à la liste listViewItem.Items.Add(lbi); }Voila ce code la ne change bizarrement rien à l'apparence lors de la selection.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 void lbi_Selected(object sender, RoutedEventArgs e) { ListBoxItem lbi = (ListBoxItem)sender; Color color = _colors[listViewItem.Items.IndexOf(lbi) % _colors.Count]; GradientStopCollection collection = new GradientStopCollection(); collection.Add(new GradientStop(Color.FromScRgb(0, 0, 0, 0), 0.5)); collection.Add(new GradientStop(color, 1)); System.Windows.Media.Brush br = new System.Windows.Media.LinearGradientBrush(collection); lbi.Background = br; }
Si quelqu'un possède une réponse merci d'avance.
Partager