TabIndex
とKeyboardNavigation.TabIndex
WPFの違いは何ですか? それぞれいつ使う?
2 に答える
@akjoshiは、彼の回答にTabIndexに関する非常に重要な情報を含めましたが、もう少し説明が役立つと思いました。
ItemsControl
繰り返しアイテムがある場合、注意しないと、このようなタブオーダーになってしまいます。
解決策は簡単です:
この添付プロパティを、繰り返される各アイテムのメインコンテナに適用します。
KeyboardNavigation.TabNavigation="Local"
この列挙にはあらゆる種類の値がありますが、これはネストされたコントロールに使用するものです。
私はそれ自体を設定IsTabStop=false
したことに注意してくださいItemsControl
(これは上の図の実際のコードではありません)。
<ItemsControl ItemsSource="{Binding CurrentItem.CustomsItems}" IsTabStop="False">
<ItemsControl.ItemTemplate>
<DataTemplate>
<ctl:CustomsItem KeyboardNavigation.TabNavigation="Local" Margin="0,0,0,8"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
一部のコントロールにCheckBox
はTabIndex
プロパティがありますが、すべてのコントロールにこのプロパティがあるわけではありませんが、フォーカスを設定してフォーカス ナビゲーションに参加させたい場合は、添付プロパティKeyboardNavigation.TabIndex
を使用できます。そのような制御の例は、Hyperlink
このKeyboardNavigationクラスとは別に、タブ ナビゲーション動作、KeyboardNavigationMode など、フォーカス ナビゲーションを設定するための他の多くの機能が提供されます。
ナビゲーション コンテナーのナビゲーション動作は、関連付けられている KeyboardNavigation プロパティの TabNavigation、ControlTabNavigation、および DirectionalNavigation を設定することで変更できます。これらのプロパティのタイプは KeyboardNavigationMode であり、可能な値は、Continue、Local、Contained、Cycle、Once、および None です。デフォルト値は Continue です。これは、要素がナビゲーション コンテナーではないことを意味します。
http://msdn.microsoft.com/en-us/library/aa969768.aspx#Keyboard_Navigation