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을 완전히 건너 뛸 수 있습니다.