2011-06-22 8 views
2

Silverlightでグローバルキーを作成する方法はありますか?一番上のPage要素にKeyDownイベントハンドラを追加しました。ボタン、テキストボックス、カレンダー、リッチテキストボックスなどの要素にフォーカスがあると、キー信号を捕捉できます。しかし、DatePickerでは、ページ・レベルでのキーダウン・イベントは処理できません。非OOB SLでホットキーを作成する方法はありますか?Silverlightのホットキー?

P.S. DatePickerコントロールはSilverlight Toolkitのままであるため、他のコントロールとは異なる動作をすると想定しています。

+0

@ user246392 - これを調べる機会はありますか?http://msdn.microsoft.com/en-us/library/cc189015%28VS.95%29.aspx –

答えて

1

AddHandler方法を試してみましたか?このメソッドを使用すると、ハンドラを追加して、すでに処理されたイベントを処理するかどうかを定義できます。

私の単純な例では、app.xaml.cs.のRootVisualに追加しました。

private void Application_Startup(object sender, StartupEventArgs e) 
     { 
      this.RootVisual = new MainPage(); 
      RootVisual.AddHandler(UIElement.KeyDownEvent, new KeyEventHandler(HandleKeyDown), true); 
     } 

     private void HandleKeyDown(object sender, KeyEventArgs e) 
     { 
      //Add your keyhandling code here 
      Debug.WriteLine(e.Key); 
     } 

DatePickerで試してみましたが、

希望すると便利です。

BR、

TJ

+0

はい - これは正常に動作するはずです。フォーカスはポップアップのコントロールにあります。この場合、RootVisualはイベントを取得しません。 – RobSiklos

0

Thisあなたを助けるかもしれません。著者は、Silverlightにフォーカスがない場合はHTMLブリッジを使用し、Application.RootVisualではKeyUpイベントを使用する2つの方法を提供しています。

私はそれを試していないので、動作しているかわかりません。

関連する問題