在WPF中设置制表符顺序

cotxawn7  于 2023-05-01  发布在  其他
关注(0)|答案(6)|浏览(120)

如何在WPF中设置制表符顺序?我有一个ItemsControl,其中一些项目展开,一些折叠,我想跳过折叠的,当我制表。
有什么想法吗

xn1cxnb4

xn1cxnb41#

如果要显式设置表单中元素的制表符顺序,下面的附加属性应该会有所帮助:

<Control KeyboardNavigation.TabIndex="0" ... />

我说“应该有帮助”,因为我还没有发现它是非常可靠的,虽然我可能需要阅读更多关于它是如何打算使用。我只发布这个半生不熟的答案,因为没有其他人提到这个属性。
请注意,在Win RT中,属性仅为TabIndex="0"

qfe3c7zg

qfe3c7zg2#

通过在XAML中的元素上设置KeyboardNavigation.IsTabStop,可以跳过制表符序列中的元素。

KeyboardNavigation.IsTabStop="False"

您可以设置一个触发器,根据展开状态切换此属性。

fiei3ece

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键在这两个组合框中导航。

piok6c0g

piok6c0g4#

我认为这里有一个更简单的解决方案,在控件或窗口的顶部,您可以添加:

KeyboardNavigation.TabNavigation="Cycle"

这也会自动忽略折叠的选项卡。

pwuypxnk

pwuypxnk5#

另一个在过去对我有用的方法是简单地删除所有显式的TabIndex语句,让控件使用它们在XAML中声明的顺序来发挥它们的魔力。
当然,这可能需要您重新排序控件。但这是一个简单的复制粘贴操作。

mwg9r5ms

mwg9r5ms6#

您可以使用KeyboardNavigation。TabNavigation=“None”完全跳过特定控件的Tab键。

相关问题