Rom*_*mán 90 .net wpf tab-ordering keyboard-navigation
如何在WPF中设置标签排序?我有一个ItemsControl,其中一些项目已展开,一些项目已折叠,并且当我选中时,我想跳过折叠的项目.
有任何想法吗?
Dre*_*kes 88
如果要显式设置表单中元素的Tab键顺序,则以下附加属性应该有助于:
<Control KeyboardNavigation.TabIndex="0" ... />
Run Code Online (Sandbox Code Playgroud)
我说"应该帮助",因为我还没有发现它非常可靠,但我可能需要阅读更多关于如何使用它的信息.我只发布这半半的答案,因为没有人提到这个属性.
请注意,在Win RT中,属性是正确的TabIndex="0"
.
Jab*_*Jab 61
您可以通过在XAML中的元素上设置KeyboardNavigation.IsTabStop来跳过选项卡序列中的元素.
KeyboardNavigation.IsTabStop="False"
Run Code Online (Sandbox Code Playgroud)
您可以设置一个触发器,根据展开状态切换此属性.
小智 24
<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" />
Run Code Online (Sandbox Code Playgroud)
将允许您使用TAB键在这两个组合框中导航.
Alt*_*F4_ 11
我认为这里有一个更简单的解决方案,在您的控件或窗口的顶部或其他任何地方,您可以添加:
KeyboardNavigation.TabNavigation="Cycle"
Run Code Online (Sandbox Code Playgroud)
这也会自动忽略折叠的标签.
过去对我TabIndex
有用的另一个替代方法是简单地删除所有显式语句,并让控件使用他们在XAML中声明的顺序发挥他们的魔力.
当然,这可能需要您重新排序控件.但这是一个简单的复制粘贴操作.