WPF:删除样式列表框中焦点项目周围的虚线边框

Posted

技术标签:

【中文标题】WPF:删除样式列表框中焦点项目周围的虚线边框【英文标题】:WPF: Remove dotted border around focused item in styled listbox 【发布时间】:2010-10-10 05:03:19 【问题描述】:

我有一个带有自定义 controlIemplate 的水平列表框。选中的项目在获得焦点时会出现一个虚线框。有谁知道如何摆脱它?

【问题讨论】:

【参考方案1】:

您需要将每个 ListBoxItem 的 FocusVisualStyle 设置为 null。步骤如下

1) 为 ListBox 创建 ItemContainerStyle

<Style x:Key="ListBoxItemStyle1" TargetType="x:Type ListBoxItem"> 
   <Setter Property="FocusVisualStyle" Value="x:Null"/> ....

2) 将该样式设置为列表框

<ListBox ItemContainerStyle="DynamicResource ListBoxItemStyle1"

【讨论】:

这个答案效果很好,但在这里很重要:如果您使用此方法,您的控件将不会显示任何在 Windows 8 中聚焦的指示器! 使用 @ 987654323@ 在 Windows 7 中被禁用,像 Buttons 这样的控件仍然保留蓝色的整体突出显示,但在 Windows 8 中,完全无法分辨组中的哪个控件被聚焦。 很高兴知道。在这种情况下,目标是删除包含更多控件的列表项的视觉样式。子控件仍将保持其焦点样式不变。 在大多数情况下,您也可以只添加FocusVisualStyle="x:Null"

以上是关于WPF:删除样式列表框中焦点项目周围的虚线边框的主要内容,如果未能解决你的问题,请参考以下文章

删除Firefox中的虚线焦点边框

axure交互样式(下拉列表和矩形)

CSS 在Windows上使用Firefox 3并且wmode透明或不透明时,删除SWF周围的虚线边框

如何删除WPF ScrollViewer边框

Python - 如何删除选定ListBox项目周围的边框?

WPF 从列表框中拖动项目并放入文本框中