Definir ordem de tabulação em WPF
-
21-08-2019 - |
Pergunta
Como faço para configurar guia ordenação em WPF? Eu tenho um ItemsControl com alguns itens expandida e alguns desmoronou e gostaria de ignorar os desabaram quando estou tabulação.
Todas as idéias?
Solução
Você pode ignorar elementos na sequência guia, definindo KeyboardNavigation.IsTabStop no elemento em XAML.
KeyboardNavigation.IsTabStop="False"
Você pode configurar um gatilho que iria alternar esta propriedade com base no estado expandido.
Outras dicas
Se você quiser definir explicitamente a ordenação de guia para os elementos no formulário, a seguinte propriedade anexada é suposto para ajudar:
<Control KeyboardNavigation.TabIndex="0" ... />
Digo "deveria ajudar" como eu não tê-lo encontrado muito confiável embora eu provavelmente precisa ler mais sobre como ele se destina a ser utilizado. Eu só postar dessa metade resposta cozido porque ninguém mencionou essa propriedade.
Note que no Win RT, a propriedade é apenas TabIndex="0"
.
<Control KeyboardNavigation.TabIndex="0" ... />
funciona perfeitamente bem ...
Por exemplo -
<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" />
Será que permitem navegar através destas duas caixas de combinação usando a tecla TAB.
Eu acho que é uma solução muito mais fácil aqui, no topo dentro de seu controle ou janela ou qualquer outra coisa, você pode adicionar:
KeyboardNavigation.TabNavigation="Cycle"
Este também de forma automática ignora as abas colapsadas.
Outra alternativa que tem trabalhado para mim no passado é simplesmente remover todas as declarações TabIndex
explícitas, e deixar que os controles usam a ordem que eles estão declarados no trabalho XAML sua magia.
Isto, naturalmente, pode exigir que você para reordenar seus controles. Mas esta é uma simples operação de copiar e colar.