.net - WPFのTabIndexとKeyboardNavigation.TabIndex




focus keyboard-navigation (2)

WPFのTabIndexKeyboardNavigation.TabIndex違いは何ですか? いつ使う?


CheckBoxようなCheckBoxTabIndexプロパティがありますが、すべてのコントロールがこのプロパティを持っているわけではありませんが、フォーカスを持ち、フォーカスナビゲーションに参加したい場合は、 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


@akjoshiには、TaxIndexについての非常に重要な情報が含まれていましたが、もう少し説明すると役立つと思いました。

項目を繰り返すItemsControlがある場合は、注意しないとこのようなタブ順序になります。

解決策は簡単です:

各繰り返し項目のメインコンテナにこの添付プロパティを適用します。

KeyboardNavigation.TabNavigation="Local" 

この列挙にはあらゆる種類の値がありますが、これは入れ子になったコントロールに使用するものです。

注意ItemsControl自体に対して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>




keyboard-navigation