WPF 中的 XNA GamePad 输入触发事件

Posted

技术标签:

【中文标题】WPF 中的 XNA GamePad 输入触发事件【英文标题】:XNA GamePad Input Triggers Event in WPF 【发布时间】:2011-08-09 15:15:33 【问题描述】:

我正在尝试在 WPF 中使用 xbox 控制器,但我似乎遇到了问题。

我能够使用游戏手柄从 XNA 获取输入

Microsoft.Xna.Framework.Input.GamePadState currentState = Microsoft.Xna.Framework.Input.GamePad.GetState(Microsoft.Xna.Framework.PlayerIndex.One);

但我不知道如何让 WPF 在按下控制器上的某些东西时触发说“KeyPressed”事件。

我尝试进行一些研究,但我找不到任何太具体的东西,或者如果我这样做了,它们大部分时间都没有得到回答。我在下面找到了这个,但它似乎没有回答你实际上是如何做到这一点的:

Can you program buttons on a gamepad to bind with mouse/keybourd input?

【问题讨论】:

【参考方案1】:

您需要查看每个按钮以查看它们是否被按下。

if (currentState.Buttons.A == ButtonState.Pressed)

    do something

【讨论】:

【参考方案2】:

正如另一个答案所说,您可以通过以下方式检查游戏手柄的状态:

if (currentState.Buttons.A == ButtonState.Pressed)

你也可以使用

if (currentState.IsButtonDown(Buttons.A))

您可能想要创建一个按钮到键映射的字典,但这取决于您。

一旦您知道如何检查游戏手柄状态,您的问题就会减少到this question。查看接受的答案。

【讨论】:

以上是关于WPF 中的 XNA GamePad 输入触发事件的主要内容,如果未能解决你的问题,请参考以下文章

XNA 3D Skybox模拟问题,包括相机位置和模型转换

XNA-Mouse.Left Button多次执行

使用 MVVM 从 WPF ListView 项触发双击事件

WPF:带有在用户拖动后触发的事件的滑块

wpf中combox的点击事件是啥

做WPF页面的时候我想通过C#代码触发自定义控件中的事件怎么做