我有以下视觉树:
<DockPanel>
<TextBox Name="ElementWithFocus" DockPanel.Dock="Left" />
<ListBox DockPanel.Dock="Left" Width="200" KeyUp="handleListBoxKeyUp">
<ListBoxItem>1</ListBoxItem>
<ListBoxItem>4</ListBoxItem>
<ListBoxItem>3</ListBoxItem>
<ListBoxItem>2</ListBoxItem>
</ListBox>
<TextBox DockPanel.Dock="Left" />
</DockPanel>
handleListBoxKeyUp如下:
private void handleListBoxKeyUp(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
((UIElement)sender).MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
}
}
当ListBox具有键盘焦点时(ListBoxItem我猜真的是这样),按下Enter会将焦点移动到中的第一项ListBox而不是下一项TextBox。为什么会发生这种情况,我怎样才能获得Enter像这里一样行事的钥匙Tab?