在这个例子中,通过制表键可以从第一个文本框到最后一个文本框,然后到展开头部。
显然,我希望这个展开框的标题能够排在第一个文本框和最后一个文本框之前。有没有一种简单的方法来为展开框的标题分配 TabIndex?
我尝试使用 KeyboardNavigation.IsTabStop="True" 强制展开框成为一个 TabStop,但这会使整个展开框获得焦点,而整个展开框不会响应空格键。再按两次 Tab 键后,标题再次被选中,我可以用空格键打开它。
编辑: 如果有人能想出更简洁的方法来解决这个问题,我会放一个赏金,如果没有,那么 rmoore,你可以获得声望。谢谢你的帮助。
<Window x:Class="ExpanderTab.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300"
FocusManager.FocusedElement="{Binding ElementName=FirstField}">
<StackPanel>
<TextBox TabIndex="10" Name="FirstField"></TextBox>
<Expander TabIndex="20" Header="_abc">
<TextBox TabIndex="30"></TextBox>
</Expander>
<TextBox TabIndex="40"></TextBox>
</StackPanel>
</Window>
显然,我希望这个展开框的标题能够排在第一个文本框和最后一个文本框之前。有没有一种简单的方法来为展开框的标题分配 TabIndex?
我尝试使用 KeyboardNavigation.IsTabStop="True" 强制展开框成为一个 TabStop,但这会使整个展开框获得焦点,而整个展开框不会响应空格键。再按两次 Tab 键后,标题再次被选中,我可以用空格键打开它。
编辑: 如果有人能想出更简洁的方法来解决这个问题,我会放一个赏金,如果没有,那么 rmoore,你可以获得声望。谢谢你的帮助。