2011-01-25 5 views
1

Silverlightアプリケーションでkeyinputをキャッチしようとすると、コントロールのフォーカスのために問題が発生します。このページは複数のコントロールで構成されていますので、異なるコントロールにフォーカスがあるたびに私のKeyDownEventは通常失敗します。 1つの可能性は、すべてのコントロールにKeyDownイベントを渡してから、それらを処理するメソッドに委ねることです。より良い方法がありますか?SilverlightでKeyInputを取得する

答えて

1

OnKeyDownをオーバーライドすることによって、すべてのコントロールを含むページでKeyDownをキャッチすることができます。

protected override void OnKeyDown(KeyEventArgs e) 
{ 
    // Distribute to listeners from here 
} 

ように(テキストボックス/ボタンなどのように)コントロールが親コントロールがチャンスを得るキー入力を処理しない場合は、ページ上のコントロールが上向きにイベントを泡ので、これは動作します。

+0

これは正常にアルムンドを扱う。実際に入力またはホットキーを使用しているかどうかを確認するには、コントロールのsecundary KeyDownイベントでブール値をチェックできます。ありがとう! –

+0

サービスにはうれしい! – Almund

関連する問題