我正在尝试在UWP平台上编写游戏。问题是:我需要将Gamepad B和Escape绑定到两个不同的操作。例如。逃脱应该总是关闭当前的任何内容,但是游戏手柄B应该只能这样做,除非我的游戏为了不同的目的而处理它。是否可以在Xbox的UWP应用程序中禁用游戏板按钮映射?
但是,在Xbox上的KeyDown中按下游戏手柄B始终可以看到Escape。
我正在尝试在UWP平台上编写游戏。问题是:我需要将Gamepad B和Escape绑定到两个不同的操作。例如。逃脱应该总是关闭当前的任何内容,但是游戏手柄B应该只能这样做,除非我的游戏为了不同的目的而处理它。是否可以在Xbox的UWP应用程序中禁用游戏板按钮映射?
但是,在Xbox上的KeyDown中按下游戏手柄B始终可以看到Escape。
我想出的另一种方法是在特定控件上处理KeyDown
,并检查eventArgs.OriginalKey
。然后在处理程序中,您可以检测映射(因为OriginalKey
将不匹配Key
),并设置eventArgs.Handled = true
以避免密钥处理。
这不处理'VirtualKey.GamepadLeftTrigger'。它甚至没有火灾:( – LOST
我认为KeyRoutedEventArgs和OriginalKey是你要找的。这里有一个示例在我的应用程序中适用于我:
private void StackPanel_KeyUp(object sender, Windows.UI.Xaml.Input.KeyRoutedEventArgs e)
{
if (e.OriginalKey == VirtualKey.GamepadB)
{
}
}
让我知道它是否适合你,我可以提供更多的细节样本 –
您使用的是什么appmodel?在Direct3D appmodel应用程序中,游戏板没有键盘映射。 –