¿Cómo configuro el orden de las pestañas en WPF? Tengo un ItemsControl con algunos elementos expandidos y otros contraídos y me gustaría omitir los contraídos cuando estoy tabulando.
¿Algunas ideas?
¿Cómo configuro el orden de las pestañas en WPF? Tengo un ItemsControl con algunos elementos expandidos y otros contraídos y me gustaría omitir los contraídos cuando estoy tabulando.
¿Algunas ideas?
Respuestas:
Puede omitir elementos en la secuencia de pestañas configurando KeyboardNavigation.IsTabStop en el elemento en XAML.
KeyboardNavigation.IsTabStop="False"
Puede configurar un disparador que alternaría esta propiedad en función del estado expandido.
Si desea establecer explícitamente el orden de tabulación para los elementos en su formulario, se supone que la siguiente propiedad adjunta debe ayudar:
<Control KeyboardNavigation.TabIndex="0" ... />
Digo "se supone que debe ayudar" porque no lo he encontrado muy confiable, aunque probablemente necesite leer más sobre cómo se pretende que se use. Solo publico esta respuesta a medias porque nadie más mencionó esta propiedad.
Tenga en cuenta que en Win RT, la propiedad es solo TabIndex="0"
.
<DockPanel Panel.ZIndex="2">
ayuda a ordenar el punto de entrada de los paneles de nivel superior.
<Control KeyboardNavigation.TabIndex="0" ... />
Funciona perfectamente bien ... Por ejemplo-
<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" />
Le permitirá navegar a través de estos dos cuadros combinados usando la tecla TAB.
Otra alternativa que me ha funcionado en el pasado es simplemente eliminar todas las TabIndex
declaraciones explícitas y dejar que los controles usen el orden en el que están declarados en XAML.
Esto, por supuesto, puede requerir que reordene sus controles. Pero esta es una simple operación de copiar y pegar.
Puede usar KeyboardNavigation.TabNavigation = "None" para omitir por completo la tabulación para un control específico.