通常在Xbox上运行UWP应用程序时,控制器上的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周围时不会响应。
无论如何,当焦点框在WebView(或AdControl)周围时,我可以找到何时按下GamePad按钮(特别是B)并且没有使用控件,所以我可以手动调用Backstack导航?
答案 0 :(得分:0)
由于在为应用程序使用XY焦点模式时会出现此问题,如果您的操作系统版本为14393或更高,则此问题的一种解决方法是通过设置RequiresPointer =&#将鼠标模式用于包含webview的此页面34; WhenFocused"如下:
<Page RequiresPointer="WhenFocused">
...
</Page>
使用app.xaml.cs中的以下代码将另一页设置为XY焦点模式:
this.RequiresPointerMode =
Windows.UI.Xaml.ApplicationRequiresPointerMode.WhenRequested;
有关详细信息,请参阅以下文章:
https://msdn.microsoft.com/en-us/windows/uwp/input-and-devices/designing-for-tv#mouse-mode