Silverlight 2アプリケーションで発生するキーストロークをキャプチャしようとしています。入力フィールドはありません。私はゲームを書いており、矢印キーのどれが押されているかを知る必要があります。イベントハンドラでこれらをキャプチャする方法に関する私のベストな推測は成功しません。どんな勧告?Silverlightアプリケーションでキーストロークをキャプチャするにはどうすればよいですか?
1
A
答えて
1
もう一度お会いできてうれしいです(事実上)。
ルートUserControl要素でKeyDownの配線をすでに試しているとします。いくつかのヒントがあります:
重要なイベントが表示される前に、プラグインのフォーカスが必要です。あなたはプラグインをクリックして起動させる必要があります。
矢印キーイベントを食べている別の要素(ScrollViewerなど)がないことを確認してください。プレイ中のScrollViewerをお持ちの場合は、KeyUpのみが表示されます。
フルスクリーンモードに切り替えません。
このような単純なものでなければなりません。希望が役立ちます。
0
ルートグリッドでKeyDownまたはKeyUpイベントを処理します。
0
Silverlight 2はKeyUpとKeyDownイベントをサポートしています(KeyPressではなく、私は信じています)。
これらのイベントでは、KeyEventArgsオブジェクトをパラメータとして取得します。これでKeyCodeまたはKeyDataを取得できます。
0
この問題に関して異なるフォーラムのいくつかのスレッドを見直すと、ページ(ルート)要素でキーイベントを処理し、目的の効果のキーを解析し、コマンドを特定のコントロールにリダイレクトするのが最善のようです。
ページ
this.KeyDown += (s, e) =>
{
MyControl control = (MyControl)Layoutroot.FindName("controlname");
if(control != null)
{
control.MyPublicFunction(e.Key);
}
};
MyControlと
public MyPublicFunciton(Key pressedKey)
{
if(pressedKey == Key.Enter)
{
//Do something
}
}
関連する問題
- 1. Silverlight 5 RCアプリケーションをSilverlight 5アプリケーションに変換するにはどうすればよいですか?
- 2. Shift + F5キーストロークをエミュレートするにはどうすればよいですか?
- 3. C#WPFアプリケーションでキーストロークをエミュレートするにはどうすればよいですか?
- 4. Honeycombでスタイラスイベントをキャプチャするにはどうすればよいですか?
- 5. Linuxでビデオをキャプチャするにはどうすればよいですか?
- 6. ステータスバーでタッチイベントをキャプチャするにはどうすればよいですか?
- 7. AngularJS:カスタムディレクティブで$イベントオブジェクトをキャプチャするにはどうすればよいですか?
- 8. しばらくしてからWP7 Silverlightアプリケーションを実行するにはどうすればよいですか?
- 9. SilverlightでAccessViolationExceptionをキャッチするにはどうすればよいですか?
- 10. SilverlightでTextRangeを使用するにはどうすればよいですか?
- 11. ウェブカメラからビデオをキャプチャするにはどうすればよいですか?
- 12. データをSilverlightに保存するにはどうすればよいですか?
- 13. Silverlight UserControlをコンテンツコンテナにするにはどうすればよいですか?
- 14. SilverlightのOObアプリケーションでSilverlight以外のWebページを開くにはどうすればいいですか?
- 15. 内容に基づいてSilverlightアプリケーションのサイズを変更するにはどうすればよいですか?
- 16. ToolBarItemタップをキャプチャするにはどうすればよいですか?
- 17. iframeのHTTPコードをキャプチャするにはどうすればよいですか?
- 18. SilverlightアプリケーションでFacebook認証を統合するにはどうすればよいですか?
- 19. 検索エンジンでSilverlightアプリケーションのインデックスを作成するにはどうすればよいですか?
- 20. Silverlightアプリケーションにヘルプシステムを追加するにはどうすればよいでしょうか?
- 21. Silverlight:カスタムレイアウトコントロールをデザインするにはどうすればよいですか?
- 22. Silverlightコントロールを更新するにはどうすればよいですか?
- 23. SilverlightアプリケーションからOSを検出するにはどうすればよいですか?
- 24. ブラウザのアプリケーションからSilverlight 4のクライアントIPアドレスを取得するにはどうすればよいですか?
- 25. WPFでキーダウンをキャプチャするにはどうすればいいですか?
- 26. Yキーストロークをdosコマンドに[YN]で送信するにはどうすればよいですか?
- 27. 別のアプリケーションのKeyDownをキャプチャするにはどうすればよいですか?
- 28. SilverLightからTCPソケットを開くにはどうすればよいですか?
- 29. WPF/Silverlightアプリケーションの一部のDPIを変更するにはどうすればよいですか?
- 30. Phone7 Silverlightアプリケーションの{x:Static ...}拡張機能を使用するにはどうすればよいですか?
私はこれらの落とし穴のすべてを回避したと思います。ここに私のコードは次のとおりです。 名前空間ClickTheButton { \t公共部分クラスのLevel10:ユーザーコントロール \t { \t \t公共Level10() \t \t { \t \t \t //必要な変数 \t \t \tのInitializeComponent()を初期化します。 \t \t \tロード済み=新しいRoutedEventHandler(Level10_Loaded); Level10_Loaded \t \t} \t \tボイド(オブジェクト送信者、RoutedEventArgs e)の \t \t { \t \t \t LayoutRoot。KeyDown + =新しいKeyEventHandler(LayoutRoot_KeyDown); \t \t} \t \t空隙LayoutRoot_KeyDown(オブジェクト送信者、KeyEventArgs E) \t \t { \t \t \t(e.Key == Key.Right) \t \t \t { \t \t \t \t //ない場合このキーがすべきこと。 \t \t \t} \t \t} \t}} –
うわ良く貼り付け+切断しないこと。 –
私はここKeyDownイベントハンドラを添付しています: LayoutRoot.KeyDown + =新しいKeyEventHandler(LayoutRoot_KeyDown)。 そして、イベント処理方法では、私はちょうどEのキー値を評価しています。しかし、私のイベント処理メソッドも呼び出されていないばかりん(と私は私のSilverlightのアプリにフォーカスを与えている確信している。) –