我想在选择项目时显示项目的焦点矩形。
因为 IsFocusedProperty 是只读的,所以我不能用 XAML 做到这一点。
如何显示聚焦矩形...
任何帮助将不胜感激。
焦点矩形是键盘焦点的一部分,当用户使用键盘将焦点设置为输入元素时显示。 我测试了手动设置键盘焦点(使用键盘.焦点()),但它似乎不起作用。
因此,我建议创建一个自定义样式,该样式将在选择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>
这也使您可以更好地控制列表框项的一般显示方式。 您也可以轻松地将其调整为其他列表类型(ListViewItem等)。