我想在项目被选中时显示它的焦点矩形。
因为 IsFocusedProperty 是只读的,所以我不能用 XAML 来做。
如何显示焦点矩形...
任何帮助将不胜感激。
我想在项目被选中时显示它的焦点矩形。
因为 IsFocusedProperty 是只读的,所以我不能用 XAML 来做。
如何显示焦点矩形...
任何帮助将不胜感激。
焦点矩形是键盘焦点的一部分,当用户使用键盘将焦点设置到输入元素时显示。我测试了手动设置键盘焦点(使用 Keyboard.Focus()),但它似乎不起作用。
所以我建议创建一个自定义样式,在选择 ListBoxItem 时模拟焦点矩形。我想出了下面似乎可行的风格。它与焦点矩形的虚线数组匹配,因此在显示真正的焦点矩形时它看起来并不奇怪。
<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 等)