2010-12-06 4 views
1

WPF 4.0では、読み込んだ後にウィンドウ内のユーザーコントロールを入れ替えると、キーボードショートカットが動作しないようです。WPF 4キーボードフォーカス:キーイベントを受け取ることはありません

Window window = new Window { Width = 800, Height = 600 }; 
window.Loaded += delegate 
{ 
    editor = new EditorRoot(); 
    window.Content = editor; 
}; 
app.Run(window); 

windowは、イベントをKeyDownイベント(とコマンドが正常に動作ルーティング)が、editorは、任意のキーボードイベントを取得していない(またそれ内の任意のコントロールを行う)決してます:コードサンプルは、私がやっているものですので、ここでは、千の言葉を言います。私は試しました:

editor.Loaded += (sender, e) => Keyboard.Focus(editor); 

...しかしそれは何もしませんでした。 EditorRootUserControlになります。IsFocusable=true何か問題がありますか?

答えて

2

そして、これがうまくいかない場合:あなたもXAMLでそれを使用することができ、私はそれを使用し、それが動作します。私の経験から、フォーカスを同時に設定することは必ずしも機能しません。 WPF 4だけでなく、

+0

これは機能しました。ありがとう! –

2

あなたのアプローチの代わりにFocusManagerを試してみることもできます。 - Dispatcher.BeginInvokeを使用

  FocusManager.FocusedElement=editor;