Mik*_*ine 5 wpf styles listbox 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"/>
Run Code Online (Sandbox Code Playgroud)
这三个标签负责大部分工作,但我的列表框有黑色背景,当控件失去焦点时,字体变为黑色.
我从另一篇文章SystemColor中找到了这个列表.从这个列表中提供大量可能选项的键和任何看似远程直观的东西都没有用.有人知道我需要改变的关键吗?
我把它放在包含列表框的元素的资源字典中:
<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>
Run Code Online (Sandbox Code Playgroud)
另请注意,在.Net 4.5中,您必须通过设置来询问"旧"行为
FrameworkCompatibilityPreferences.
AreInactiveSelectionHighlightBrushKeysSupported = false;
Run Code Online (Sandbox Code Playgroud)
在创建任何窗口之前,在程序的早期.
使用以下代码并仅更改颜色,例如使用Colors.Black
listBox.Resources.Add(SystemColors.ControlBrushKey, new SolidColorBrush(Color.FromArgb(0xFF, 0x7F, 0xDB, 0x14)));
listBox.Resources.Add(SystemColors.ControlTextBrushKey, Brushes.White);
Run Code Online (Sandbox Code Playgroud)
祝你好运。
| 归档时间: |
|
| 查看次数: |
5901 次 |
| 最近记录: |