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

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

【问题讨论】:

    标签: wpf xaml listbox focus border


    【解决方案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}"
    猜你喜欢
    • 2020-10-26
    • 2019-11-05
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-20
    • 2016-04-05
    相关资源
    最近更新 更多