2010-12-04 4 views
0

私はXNAを使って、バックグラウンドスレッドでGamePadとキーボードをポーリングし、いくつかのコールバックを呼び出すモジュールを作成しました。ゲームクラスはまったくありません。 私はこのモジュールをWPFアプリケーションから使い、コールバックでDispatcher.BeginInvokeを呼び出し、コールバックパラメータに基づいてディスプレイ(TextBoxを含まないなど)にいくつかの変更を加えたいとします。 GamePadで完全に動作しますが、Keyboard.GetState()。GetPressedKeys()配列は常に空です! XNAでポーリングする前にキーボードイベントを捕捉するWPFメッセージループと関係があると思うか、xnaがキーボードフォーカスを設定するためのものはありません。 ヒントはありますか?どのようにXNAにキーボードの状態を渡すので、私はWPFクラスを使用してキーボードの処理を書き換える必要はありません? ありがとうXNA、Keyboard.GetState()を使用するWPF GetPressedKeys()は常に空です!

答えて

0

心配していない、私はそれを働いた!問題は焦点が合っていなかった、それはスレッディングだった!私はポーリングクラスでコールバックを公開し、Keyboard.GetState()を呼び出すときに、(WPFで)Dispatcher.Invoke()=> poll.GetKeyboardState()というコールバックをコールしました。 GetState()がWPFコントロールと同じスレッド上にあったので、うまくいった!ホア!

関連する問題