WPF:在样式化列表框中取消聚焦项周围的虚线边框

91

我有一个水平的列表框,使用了自定义控件模板。当焦点在选择项上时,它会出现虚线边框。有人知道如何去掉它吗?

1个回答

177

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

1) 为ListBox创建ItemContainerStyle

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

2) 将该样式设置为Listbox

<ListBox ItemContainerStyle="{DynamicResource ListBoxItemStyle1}"

5
这个答案效果很好,但需要特别注意:如果使用这种方法,在Windows 8中,您的控件将不会显示任何指示哪个控件获得焦点!虽然在Windows 7中禁用了 FocusVisualStyle ,像按钮这样的控件仍然保留着蓝色的整体高亮显示,但在Windows 8中,完全无法判断一组控件中哪个控件获得了焦点。 - Evan Wondrasek
1
很好知道。在这种情况下,目标是为包含更多控件的列表项删除视觉样式。子控件仍将保持其焦点样式不变。 - Vegar
3
在大多数情况下,您也可以只需添加FocusVisualStyle = "{x:Null}"。 - Adephx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接