1

通常在 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 导航?

4

1 回答 1

0

由于在为应用程序使用 XY 焦点模式时会发生此问题,如果您的操作系统版本为 14393 或更高版本,则此问题的一种解决方法是通过设置 RequiresPointer="WhenFocused" 为包含 web 视图的此页面使用鼠标模式,如下所示:

<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

于 2017-01-11T06:24:57.937 回答