温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - Where is the FocusManager in a uwp xaml applications?
uwp-xaml

其他 - uwp xaml应用程序中的FocusManager在哪里?

发布于 2020-03-29 12:53:01

我正在尝试解决xaml / uwp应用程序中的问题。我发现的大多数建议都涉及一个名为FocusManager的类,该类似乎是许多控件和容器的属性。

不幸的是,每当我尝试使用它时,我发现我的任何控件(包括Page,UserControl,StackPanel等)上的应用程序中都没有此类属性。

我很困惑为什么会这样。

如何在我的应用程序中访问此类?或者,是否有其他方法可以改变焦点?

查看更多

查看更多

提问者
Frank LaRosa
被浏览
16
Nico Zhu - MSFT 2020-01-31 16:30

请检查此FocusManager 文件它是一个帮助程序类,它可以对应用程序中所有元素之间的焦点动作和事件进行全局管理,而不是控件或页面的属性。以下是可以测试的演示代码。

private void Page_KeyUp(object sender, KeyRoutedEventArgs e)
{
   if (e.Key == Windows.System.VirtualKey.Up)
   {
      // Mimic Shift+Tab when user hits up arrow key.
      FocusManager.TryMoveFocus(FocusNavigationDirection.Previous);
   }
   else if (e.Key == Windows.System.VirtualKey.Down)
   {
      // Mimic Tab when user hits down arrow key.
      FocusManager.TryMoveFocus(FocusNavigationDirection.Next);
   }
}