如何从后面的代码更改列表框未选择的项目颜色

时间:2017-06-04 16:08:23

标签: c# wpf listbox background-color

我必须通过后面的代码创建listBox。之后,我必须在未选择列表框时更改所选项目的颜色。 我找到了that解决方案,但无法通过后面的代码呈现它。

enter image description here

谢谢

2 个答案:

答案 0 :(得分:1)

由于您已经在链接中看到了答案,因此您需要应用样式。现在您需要通过代码隐藏应用该样式(在XAML中定义)的帮助?如果是,则应用以下代码:

Style style = this.FindResource("YourStyleName") as Style;
myListBox.Style = style;

如果您的样式在同一个Window的XAML中定义,则上述代码有效。如果它在其他地方,请按照以下代码:

Style style = Application.Current.FindResource("YourStyleName") as Style;
myListBox.Style = style;

话虽如此,我建议不要通过listbox添加C#,因为通过C#处理用户界面很难。我建议在XAML中定义列表框并使用databindingINotifyPropertyChanged来降低代码复杂性。

我希望我已经回答了你的问题。如果评论部分还有其他内容,请告诉我。

此外,请注意:在您提到的链接问题中。就像风格将进入XAML

一样

答案 1 :(得分:1)

如果您可以覆盖列表框中的窗口颜色,那么非常简单

listBox1.Resources[SystemColors.InactiveSelectionHighlightBrushKey] = Brushes.Blue;

我选择了你的rgb颜色,所以准确地说:

listBox1.Resources[SystemColors.InactiveSelectionHighlightBrushKey] = new SolidColorBrush(Color.FromArgb(255, (byte)51, (byte)153, (byte)255));