[.net] WPF에서 탭 순서 설정

WPF에서 탭 순서를 어떻게 설정합니까? 일부 항목이 확장되고 일부가 축소 된 ItemsControl이 있으며 탭할 때 축소 된 항목을 건너 뛰고 싶습니다.

어떤 아이디어?



답변

XAML의 요소에 KeyboardNavigation.IsTabStop 을 설정하여 탭 시퀀스의 요소를 건너 뛸 수 있습니다 .

KeyboardNavigation.IsTabStop="False"

확장 된 상태를 기반으로이 속성을 전환하는 트리거를 설정할 수 있습니다.


답변

양식의 요소에 대한 탭 순서를 명시 적으로 설정하려면 다음과 같은 연결된 속성이 도움이 될 것입니다.

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

나는 그것이 어떻게 사용되도록 의도되었는지에 대해 더 많이 읽어야 할 필요가있을지라도 내가 그것이 매우 신뢰할 수있는 것을 발견하지 못했기 때문에 “도움이 필요하다”라고 말한다. 아무도이 속성을 언급하지 않았기 때문에 나는이 반쯤 구운 답변 만 게시합니다.


Win RT에서 속성은 TabIndex="0".


답변

<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 키를 사용하여이 두 콤보 상자를 탐색 할 수 있습니다.


답변

여기에 훨씬 더 쉬운 솔루션이 있다고 생각합니다. 컨트롤이나 창 또는 기타 항목의 맨 위에 다음을 추가 할 수 있습니다.

KeyboardNavigation.TabNavigation="Cycle"

이것은 또한 접힌 탭을 자동으로 무시합니다.


답변

과거에 저에게 도움이 된 또 다른 대안은 모든 명시 적 TabIndex문 을 간단히 제거 하고 컨트롤이 XAML에서 선언 된 순서를 사용하도록하는 것입니다.

물론 컨트롤을 다시 정렬해야 할 수도 있습니다. 그러나 이것은 간단한 복사-붙여 넣기 작업입니다.


답변

KeyboardNavigation.TabNavigation = “None”을 사용하여 특정 제어를 위해 Tabbing을 완전히 건너 뛸 수 있습니다.


답변