それはあなたの説明から少し明らかですが、あなたが探しているのいずれか:最後の項目が選択されている場合、リストボックスの外に移動する
- ナビゲーション。
- リスト内の最後の項目を超えてナビゲーションが試行されたときに、ナビゲーションがリストボックスからポップアウトすると、
の場合は、()がトリガーを使用して合理的な解決策は、おそらくされ、または選択した項目に基づいてイベントのために扱ういくつかのカスタムコードと選択した項目を変更し、あなたの目的です。私はTomの意見に同意する必要がありますが、このような場合は実装しないことをお勧めします。最後の項目はプログラムで削除されることなくフォーカスを選択できないためです。
代わりに()すると、Tabキーが押されたときにListBoxの自然な振る舞いが次のコントロールに移動することが私の経験ですキーも同様に動作します。リストの最後の項目に移動すると、フォーカスはリストボックスから外に出て、その親に応じて次のコントロールに移動します。
UPDATE:私はリストボックスのためにWPFのデフォルトの動作を記述していない上記の行動のように私の元のコメントを撤回する必要がしかし、それはあなたが、私はあると信じて、私は上記の行動を(表示される動作ですItemsControlを実装してItemTemplateを指定するときは、あなたの探している動作)次の例を見てください。偶然
<ItemsControl ItemsSource="{Binding ElementName=TheWindow, Path=ListOStrings}">
<ItemsControl.Template>
<ControlTemplate TargetType="{x:Type ItemsControl}">
<Border BorderBrush="Magenta"
BorderThickness="1">
<ScrollViewer>
<ItemsPresenter />
</ScrollViewer>
</Border>
</ControlTemplate>
</ItemsControl.Template>
<ItemsControl.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
、これは単にリストの各項目は、ほぼすべての他のコントロールへのピアとして直接配置制御のように振る舞うので、あなたが説明した動作を持っていることを起こります。
私はリストボックスの外にフォーカスを移動するための簡単なトリックを使用