94

WPFでタブ順序を設定するにはどうすればよいですか? 一部のアイテムが展開され、一部が折りたたまれた ItemsControl があり、タブ移動時に折りたたまれたアイテムをスキップしたいと考えています。

何か案は?

4

6 に答える 6

92

フォーム内の要素のタブ順序を明示的に設定する場合は、次の添付プロパティが役立ちます。

<Control KeyboardNavigation.TabIndex="0" ... />

私はそれがどのように使用されることを意図しているかについてもっと読む必要があるかもしれませんが、私はそれがあまり信頼できるとは思わなかったので「助けになると思われる」と言います。他の誰もこのプロパティについて言及していないので、私はこの半分焼きたての答えだけを投稿します。


Win RTでは、プロパティは単なる。であることに注意してくださいTabIndex="0"

于 2009-02-26T17:52:28.243 に答える
65

XAML で要素にKeyboardNavigation.IsTabStopを設定すると、タブ シーケンスの要素をスキップできます。

KeyboardNavigation.IsTabStop="False"

展開された状態に基づいてこのプロパティを切り替えるトリガーを設定できます。

于 2008-12-11T19:34:54.887 に答える
25

<Control KeyboardNavigation.TabIndex="0" ... />完全に正常に動作します...たとえば-

<ComboBox Height="23" 
          Margin="148,24,78,0" 
          Name="comboBoxDataSet"
          VerticalAlignment="Top"
          SelectionChanged="comboBoxDestMarketDataSet_SelectionChanged"
          DropDownOpened="comboBoxDestMarketDataSet_DropDownOpened"
          KeyboardNavigation.TabIndex="0" />
<ComboBox Height="23" 
          Margin="148,56,78,0" 
          Name="comboBoxCategory" 
          VerticalAlignment="Top" 
          SelectionChanged="comboBoxDestCategory_SelectionChanged"
          DropDownOpened="comboBoxDestCategory_DropDownOpened"
          KeyboardNavigation.TabIndex="1" />

TAB キーを使用して、これら 2 つのコンボ ボックス間を移動できます。

于 2010-05-25T03:16:45.433 に答える
13

ここには、コントロールやウィンドウなどの上部に、追加できるはるかに簡単な解決策があると思います。

KeyboardNavigation.TabNavigation="Cycle"

これにより、折りたたまれたタブも自動的に無視されます。

于 2011-11-30T13:50:33.890 に答える
6

過去に私にとってうまくいった別の方法は、単純にすべての明示的なTabIndexステートメントを削除し、コントロールが XAML で宣言された順序を使用するようにすることです。

もちろん、これにはコントロールの順序を変更する必要がある場合があります。ただし、これは単純なコピー アンド ペースト操作です。

于 2014-06-06T16:59:43.310 に答える