Где находится FocusManager в приложениях uwp xaml? - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь решить проблему в приложении xaml / uwp. Большинство предложений, которые я нахожу, относятся к классу под названием FocusManager, который, по-видимому, является свойством многих элементов управления и контейнеров.

К сожалению, всякий раз, когда я пытаюсь его использовать, я обнаруживаю, что такого свойства нет доступны в моем приложении на любом из моих элементов управления, включая Page, UserControl, StackPanel и т. д. c.

Я не понимаю, почему это так.

Как получить доступ к этому классу в моем приложении? Или есть другой способ изменить фокус?

1 Ответ

1 голос
/ 31 января 2020

Пожалуйста, проверьте этот 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);
   }
}
...