我想在选中时显示项目的焦点矩形。
因为IsFocusedProperty是只读的,所以我无法使用XAML。
如何显示聚焦矩形......
任何帮助将不胜感激。
答案 0 :(得分:0)
焦点矩形是键盘焦点的一部分,当用户使用键盘将焦点设置为Input元素时显示。我测试了手动设置键盘焦点(使用Keyboard.Focus()),但它似乎不起作用。
所以我建议创建一个自定义样式,在选择ListBoxItem时模拟焦点rect。我想出了下面似乎有用的风格。它匹配焦点rect的破折号数组,以便在显示真实焦点rect时看起来不奇怪。
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Grid>
<Border Background="{TemplateBinding Background}">
<ContentPresenter Margin="{TemplateBinding Padding}"/>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Green"/>
<Setter Property="Foreground" Value="White"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
这也使您可以更好地控制ListBoxItem的显示方式。您也可以轻松地将其调整为其他列表类型(ListViewItem等)