WPF如何在列表框失去焦点时更改列表框所选项目的文本颜色

标签 wpf listbox styles selecteditem

我一直在寻找如何在失去焦点的列表框中更改所选项目的文本颜色。

  <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
  <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent"/>
  <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Orange"/>

这三个标签负责大部分工作,但我的列表框背景为黑色,当控件失去焦点时,字体变为黑色。

我从另一篇文章中找到了这个列表 SystemColor. Keys这从这个列表中提供了大量可能的选项,而任何看起来很直观的东西都没有奏效。有人知道我需要改变的关键吗?

最佳答案

我把它放在一个包含列表框的元素的资源字典中:

               <Style TargetType="ListBoxItem">
                <Style.Resources>
                    <!--SelectedItem with focus-->
                    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Blue"/>
                    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="White"/>
                    <!--SelectedItem without focus-->
                    <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Blue"/>
                    <SolidColorBrush x:Key="{x:Static SystemColors.ControlTextBrushKey}" Color="White"/>
                </Style.Resources>
            </Style>

另请注意,在 .Net 4.5 中,您必须通过设置来要求“旧”行为
      FrameworkCompatibilityPreferences.
            AreInactiveSelectionHighlightBrushKeysSupported = false;

在创建任何窗口之前的程序早期。

关于WPF如何在列表框失去焦点时更改列表框所选项目的文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3111763/

相关文章:

c# - 如何关闭 Windows 8.1 手势并在我的触摸屏上设置 super 按钮

c# - Excel 应用程序单例 - 仅使用一个 Excel 应用程序实例而不退出的可能威胁?

wpf - 我该如何让那个该死的 wpf 弹出窗口消失?

c# - 如何将命令绑定(bind)到列表框项?

html - 经典多选列表框 SQL 查询

wpf - 创建带有图像和文本的 wpf 按钮

css - 样式禁用 ionic 选择

wpf - 从 Universal App 共享项目中引用图像资源

c# - 在 DataTemplate 中显示数据绑定(bind)的 StackPanel

android - 样式下拉/导航栏 actionbarsherlock 字体