如何更改列表框中未选中的项目颜色

问题描述:

我必须通过后面的代码创建列表框。之后,我不得不改变选择的项目所具有的颜色。 我找到了that解决方案,但无法通过后面的代码进行渲染。如何更改列表框中未选中的项目颜色

enter image description here

谢谢

很容易的,如果它确定为您在列表框

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

重写Windows颜色我拿起你的RGB颜色,所以要精确是:

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

正如你已经看到了答案中的链接,你需要应用的风格。现在您需要通过代码来应用该样式(在XAML中定义)的帮助吗?如果是,则适用下面的代码:

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

,如果你的风格是在同一窗口中的XAML中定义的上面的代码工作。如果是别的地方,请按照下面的代码:

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

话虽这么说,我不建议通过C#添加listbox,因为它可以通过强硬C#来处理UI。我建议在XAML中定义列表框,并使用databinding,INotifyPropertyChanged来降低代码复杂度。

我希望我已经回答了您的问题。让我知道评论部分是否还有其他内容。

此外,请注意:在问题中你提到的链接。完全一样的样式将在XAML去

+0

我没有xaml它是通过appdomain,dll定义的插件。 – Luca

+0

所以你说的是,你没有XAML代码显示数据的窗口?如果是的话,你可以分享一个演示样本解决方案或更多的代码,通过它我们可以解决你的问题? –