c# - WPF:KeyboardNavigationMode.Contained 无法抑制焦点环绕

标签 c# wpf navigation focus

我想使用箭头键在我的窗口中导航。它到目前为止有效,但如果我到达窗口的末尾,焦点将换行到第一个主菜单项。但我希望焦点停留在我窗口中的最后一个控件上。

private void Window_PreviewKeyDown(object sender, KeyEventArgs e)
{
   if (e.Key == Key.Down)
   {
     elem.MoveFocus(FocusNavigationDirection.Next);
   }
}

“elem”是“stackPanel”的间接子控件。 MoveFocus 始终返回 true 并且我已经尝试过: KeyboardNavigation.SetTabNavigation(stackPanel, KeyboardNavigationMode.Contained); KeyboardNavigation.SetDirectionalNavigation(stackPanel,KeyboardNavigationMode.Contained); KeyboardNavigation.SetControlTabNavigation(stackPanel, KeyboardNavigationMode.Contained);

没有任何帮助。

最佳答案

使用 TraversalRequest 怎么样?实例?

if (e.Key == Key.Down)
{
    e.Handled = true;
    elem.MoveFocus(new TraversalRequest 
    { 
        FocusNavigationDirection = FocusNavigationDirection.Next,
        Wrapped = false
    });
}

请注意,MSDN documentation for TraversalRequest.Wrapped说默认情况下它是假的,所以无论如何焦点都不应该换行。

关于c# - WPF:KeyboardNavigationMode.Contained 无法抑制焦点环绕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1416360/

相关文章:

android - 如何使用抽屉导航调用我的 Activity 之一?

c# - NinjectModule 的加载顺序

c# - 按照 MVVM 在 WPF 应用程序中保存屏幕区域

C# - 使用 Dapper 构建分层数据结构

WPF 负边距显示不正确

c# - WPF slider 和日期

navigation - 如何在 zf2 中设置 2 个导航?

iOS 滑出菜单导致应用程序崩溃。怎么修?

c# - 增加一个字节[]

c# - 如何在 GridView 中设置行号