UWP Xbox Одностраничная навигация при использовании WebView
Обычно при запуске приложения UWP на Xbox кнопка B на контроллере обрабатывается автоматически и возвращает вас на предыдущую страницу.
У меня есть страница, которая содержит WebView, когда вы используете кнопки со стрелками для размещения поля фокуса вокруг этого элемента управления, кнопка B больше не реагирует. Вы можете использовать кнопку A, чтобы получить контроль над WebView и отобразить указатель, а затем кнопка B вернет фокус обратно, как указано выше, но я не могу перейти назад с помощью кнопки B, пока вы не переместите поле фокусировки на другой элемент управления. Это также происходит с использованием AdControl, поскольку он использует WebView.
Я пытался захватить KeyDown:
Window.Current.CoreWindow.KeyDown += CoreWindow_KeyDown;
private void CoreWindow_KeyDown(Windows.UI.Core.CoreWindow sender, Windows.UI.Core.KeyEventArgs args)
{
Debug.WriteLine(args.VirtualKey.ToString());
}
Это отвечает GamePadB, GamePadX и т. Д., Но не в том случае, когда окно фокусировки находится вокруг WebView.
Можно ли как-нибудь узнать, когда нажимаются кнопки GamePad (в частности, B), когда поле фокусировки находится вокруг WebView (или AdControl), а элемент управления не задействован, поэтому я могу вручную вызывать навигацию по обратному стеку?
1 ответ
Так как эта проблема возникает при использовании режима фокуса XY для приложения, если ваша версия ОС 14393 или выше, одним из обходных путей для этой проблемы является использование режима мыши для этой страницы, которая содержит веб-просмотр, установив параметр RequPointer="WhenFocused" следующим образом:
<Page RequiresPointer="WhenFocused">
...
</Page>
И установите другую страницу в режим фокусировки XY, используя следующий код в app.xaml.cs:
this.RequiresPointerMode =
Windows.UI.Xaml.ApplicationRequiresPointerMode.WhenRequested;
Для получения дополнительной информации, пожалуйста, попробуйте обратиться к следующей статье:
https://msdn.microsoft.com/en-us/windows/uwp/input-and-devices/designing-for-tv