如何从后面的代码更改列表框所选项目的颜色
How to change a listbox unselected item colour from code behind
我必须通过隐藏代码创建列表框。之后,当未选择列表框时,我必须更改所选项目的颜色。
我找到了 that 解决方案,但无法通过隐藏代码呈现它。
谢谢
正如您已经在 link 中看到的那样,您需要应用一种样式。现在,您需要帮助通过隐藏代码应用该样式(在 XAML 中定义)吗?如果是,则应用以下代码:
Style style = this.FindResource("YourStyleName") as Style;
myListBox.Style = style;
如果您的样式是在 Window 的 XAML 中定义的,则上述代码有效。如果它在其他地方,请遵循以下代码:
Style style = Application.Current.FindResource("YourStyleName") as Style;
myListBox.Style = style;
也就是说,我不建议通过 C#
添加 listbox
,因为通过 C# 处理 UI 可能很困难。我建议在 XAML 中定义列表框并使用 databinding
、INotifyPropertyChanged
来降低代码复杂性。
希望我已经回答了你的问题。评论区还有什么要告诉我的
另外,请注意:在问题中您提到的link。与 XAML
中的样式完全一样
如果您可以覆盖列表框上的 windows 颜色,则非常简单
listBox1.Resources[SystemColors.InactiveSelectionHighlightBrushKey] = Brushes.Blue;
我选择了你的 rgb 颜色,准确地说是:
listBox1.Resources[SystemColors.InactiveSelectionHighlightBrushKey] = new SolidColorBrush(Color.FromArgb(255, (byte)51, (byte)153, (byte)255));
我必须通过隐藏代码创建列表框。之后,当未选择列表框时,我必须更改所选项目的颜色。 我找到了 that 解决方案,但无法通过隐藏代码呈现它。
谢谢
正如您已经在 link 中看到的那样,您需要应用一种样式。现在,您需要帮助通过隐藏代码应用该样式(在 XAML 中定义)吗?如果是,则应用以下代码:
Style style = this.FindResource("YourStyleName") as Style;
myListBox.Style = style;
如果您的样式是在 Window 的 XAML 中定义的,则上述代码有效。如果它在其他地方,请遵循以下代码:
Style style = Application.Current.FindResource("YourStyleName") as Style;
myListBox.Style = style;
也就是说,我不建议通过 C#
添加 listbox
,因为通过 C# 处理 UI 可能很困难。我建议在 XAML 中定义列表框并使用 databinding
、INotifyPropertyChanged
来降低代码复杂性。
希望我已经回答了你的问题。评论区还有什么要告诉我的
另外,请注意:在问题中您提到的link。与 XAML
中的样式完全一样如果您可以覆盖列表框上的 windows 颜色,则非常简单
listBox1.Resources[SystemColors.InactiveSelectionHighlightBrushKey] = Brushes.Blue;
我选择了你的 rgb 颜色,准确地说是:
listBox1.Resources[SystemColors.InactiveSelectionHighlightBrushKey] = new SolidColorBrush(Color.FromArgb(255, (byte)51, (byte)153, (byte)255));