当前位置:  开发笔记 > 开发工具 > 正文

将选定且未聚焦的列表框样式更改为不变为灰色

如何解决《将选定且未聚焦的列表框样式更改为不变为灰色》经验,为你挑选了3个好方法。

我有一个非常简单的WPF ListBox,SelectionMode设置为Multiple.


当ListBox失去焦点时,由于选择颜色从蓝色变为浅灰色,因此很难确定选择了什么.更改此行为以使其保持蓝色的最简单方法是什么?

我知道这可能与ListItem的风格有关,但我无法找到它.

干杯.

类似: WPF ListView非活动选择颜色



1> Guy Starbuck..:

我在合并的ResourceDictionary中使用以下内容完成了类似的操作,它可以帮助您:



使用InactiveSelectionHighlightBrushKey而不是.NET 4.5中的ControlBrushKey.
这似乎不适用于在默认的`ControlTemplate`触发器中使用静态颜色的Windows-8.您必须派生基础`Style`并在这些触发器中指定过度使用的画笔或直接给出颜色.http://stackoverflow.com/questions/16819577/setting-background-color-or-wpf-4-0-listbox/16820062#16820062

2> Eben Geer..:

这不是问题的答案,但是当我在寻找一种方法来禁用列表框中的选择时,我发现了这一点.通过使用稍微修改过的Guy's&bendewey技术,您可以在列表框中看到没有选择的外观而不替换基础项控件或类似的东西.这是我使用的代码:


  

我还发现以下MSDN页面有用:

MSDN:SystemColors成员(System.Windows)

谢谢你的帮助,伙计们.



3> nmclean..:

更完整的解决方案是让新画笔引用HighlightColor:


        
    

这将确保它使用相同的颜色并匹配系统主题(即使系统主题在运行时更改,感谢DynamicResource).

顺便说一句,似乎WPF的最新版本不再使用"ControlBrush"了,但更合适的是"InactiveSelectionHighlightBrush".

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有