如何在WPF中设置制表符顺序?我有一个ItemsControl,其中一些项目展开,一些折叠,我想跳过折叠的,当我制表。有什么想法吗
xn1cxnb41#
如果要显式设置表单中元素的制表符顺序,下面的附加属性应该会有所帮助:
<Control KeyboardNavigation.TabIndex="0" ... />
我说“应该有帮助”,因为我还没有发现它是非常可靠的,虽然我可能需要阅读更多关于它是如何打算使用。我只发布这个半生不熟的答案,因为没有其他人提到这个属性。请注意,在Win RT中,属性仅为TabIndex="0"。
TabIndex="0"
qfe3c7zg2#
通过在XAML中的元素上设置KeyboardNavigation.IsTabStop,可以跳过制表符序列中的元素。
KeyboardNavigation.IsTabStop="False"
您可以设置一个触发器,根据展开状态切换此属性。
fiei3ece3#
<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键在这两个组合框中导航。
piok6c0g4#
我认为这里有一个更简单的解决方案,在控件或窗口的顶部,您可以添加:
KeyboardNavigation.TabNavigation="Cycle"
这也会自动忽略折叠的选项卡。
pwuypxnk5#
另一个在过去对我有用的方法是简单地删除所有显式的TabIndex语句,让控件使用它们在XAML中声明的顺序来发挥它们的魔力。当然,这可能需要您重新排序控件。但这是一个简单的复制粘贴操作。
TabIndex
mwg9r5ms6#
您可以使用KeyboardNavigation。TabNavigation=“None”完全跳过特定控件的Tab键。
6条答案
按热度按时间xn1cxnb41#
如果要显式设置表单中元素的制表符顺序,下面的附加属性应该会有所帮助:
我说“应该有帮助”,因为我还没有发现它是非常可靠的,虽然我可能需要阅读更多关于它是如何打算使用。我只发布这个半生不熟的答案,因为没有其他人提到这个属性。
请注意,在Win RT中,属性仅为
TabIndex="0"
。qfe3c7zg2#
通过在XAML中的元素上设置KeyboardNavigation.IsTabStop,可以跳过制表符序列中的元素。
您可以设置一个触发器,根据展开状态切换此属性。
fiei3ece3#
<Control KeyboardNavigation.TabIndex="0" ... />
工作得非常好。比如...将允许您使用TAB键在这两个组合框中导航。
piok6c0g4#
我认为这里有一个更简单的解决方案,在控件或窗口的顶部,您可以添加:
这也会自动忽略折叠的选项卡。
pwuypxnk5#
另一个在过去对我有用的方法是简单地删除所有显式的
TabIndex
语句,让控件使用它们在XAML中声明的顺序来发挥它们的魔力。当然,这可能需要您重新排序控件。但这是一个简单的复制粘贴操作。
mwg9r5ms6#
您可以使用KeyboardNavigation。TabNavigation=“None”完全跳过特定控件的Tab键。