0

アイテムを選択したときにフォーカス長方形を表示したい。

IsFocusedPropertyは読み取り専用であるため、XAMLでは実行できません。

フォーカスされた長方形を表示するにはどうすればよいですか...

どんな助けでもありがたいです。

4

1 に答える 1

0

フォーカス四角形はキーボード フォーカスの一部であり、ユーザーがキーボードを使用して入力要素にフォーカスを設定すると表示されます。(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 など) にも簡単に適用できます。

于 2012-06-29T22:04:19.910 に答える