有没有办法强制焦点导航(由Tab键或MoveFocus
方法控制)在给定容器内进行换行? 我已经在下面包含了演示此问题的代码。最简单的方法是使Tab从TextBox
"Charlie"转移到TextBox
"Able"(Shift+Tab在TextBox
"Able"上反向操作),而不是将其移动到MenuItem
"Alpha"。
<Window x:Class="NavWrapExample.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">
<DockPanel LastChildFill="True">
<Menu DockPanel.Dock="Top">
<MenuItem Header="Alpha" />
<MenuItem Header="Bravo" />
<MenuItem Header="Charlie" />
</Menu>
<StackPanel>
<TextBox Text="Able" />
<TextBox Text="Baker" />
<TextBox Text="Charlie" />
</StackPanel>
</DockPanel>
</Window>
IsFocusScope
是完全不同的东西 - 它定义了一个新的逻辑焦点范围,可以在该范围内记住逻辑焦点,并在键盘(“物理”)焦点返回到该范围时恢复。拥有它并不能启用 Tab 循环行为 - 这由KeyboardNavigation.TabNavigation
属性控制,如其他答案中所述。 - Pavel Minaev