Comment définir l'ordre des onglets dans WPF? J'ai un ItemsControl avec certains éléments développés et d'autres réduits et je voudrais ignorer ceux réduits lorsque je tabule.
Des idées?
Comment définir l'ordre des onglets dans WPF? J'ai un ItemsControl avec certains éléments développés et d'autres réduits et je voudrais ignorer ceux réduits lorsque je tabule.
Des idées?
Réponses:
Vous pouvez ignorer des éléments dans la séquence d'onglets en définissant KeyboardNavigation.IsTabStop sur l'élément en XAML.
KeyboardNavigation.IsTabStop="False"
Vous pouvez configurer un déclencheur qui basculerait cette propriété en fonction de l'état développé.
Si vous souhaitez définir explicitement l'ordre de tabulation des éléments de votre formulaire, la propriété jointe suivante est censée vous aider:
<Control KeyboardNavigation.TabIndex="0" ... />
Je dis "censé aider" car je ne l'ai pas trouvé très fiable mais j'ai probablement besoin d'en savoir plus sur la façon dont il est censé être utilisé. Je ne poste que cette réponse à moitié cuite car personne d'autre n'a mentionné cette propriété.
Notez que dans Win RT, la propriété est juste TabIndex="0"
.
<DockPanel Panel.ZIndex="2">
aide à commander le point d'entrée des panneaux de niveau supérieur.
<Control KeyboardNavigation.TabIndex="0" ... />
Fonctionne parfaitement bien ... Par exemple-
<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" />
Vous permettra de naviguer dans ces deux zones de liste déroulante à l'aide de la touche TAB.
Une autre alternative qui a fonctionné pour moi dans le passé est de simplement supprimer tous les TabIndex
instructions et de laisser les contrôles utiliser l'ordre dans lequel ils sont déclarés en XAML travailler leur magie.
Ceci, bien sûr, peut vous obliger à réorganiser vos commandes. Mais il s'agit d'une simple opération de copier-coller.
Vous pouvez utiliser KeyboardNavigation.TabNavigation = "None" pour ignorer complètement la tabulation pour un contrôle spécifique.