【问题标题】:WPF using XNA, Keyboard.GetState().GetPressedKeys() always empty!WPF 使用 XNA,Keyboard.GetState().GetPressedKeys() 总是空的!
【发布时间】:2010-12-04 02:04:44
【问题描述】:

我有一个使用 XNA 编写的模块,它在后台线程上轮询 GamePad 和键盘,并调用一些回调。没有任何游戏课程。 我想从 WPF 应用程序中使用这个模块,在回调上调用 Dispatcher.BeginInvoke,并根据回调参数对显示(不包含 TextBox 等)进行一些更改。 它与 GamePad 完美配合,但 Keyboard.GetState().GetPressedKeys() 数组始终为空! 我认为这与在我可以在 XNA 中轮询键盘事件之前捕获键盘事件的 WPF 消息循环有关,或者 xna 没有任何东西可以将键盘焦点设置为。 你有什么建议吗?如何将键盘状态传递给 XNA,这样我就不必使用 WPF 类重写键盘处理? 谢谢

【问题讨论】:

    标签: c# wpf keyboard xna


    【解决方案1】:

    没关系,我解决了!问题不在于焦点,而在于线程!我在轮询类上公开了一个回调,当我想调用 Keyboard.GetState() 时,我调用了回调,它(在 WPF 中)是一个 Dispatcher.Invoke(()=>poll.GetKeyboardState()) 调用,所以这个时间 GetState() 与 WPF 控件在同一线程上,所以它起作用了!!!万岁!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-24
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      相关资源
      最近更新 更多