0

我想在项目被选中时显示它的焦点矩形。

因为 IsFocusedProperty 是只读的,所以我不能用 XAML 来做。

如何显示焦点矩形...

任何帮助将不胜感激。

4

1 回答 1

0

焦点矩形是键盘焦点的一部分,当用户使用键盘将焦点设置到输入元素时显示。我测试了手动设置键盘焦点(使用 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 等)

于 2012-06-29T22:04:19.910 回答