0

ウィンドウ内に WPF フォームがあり、次のような短い一連のイベントがあります。

1) 1 番目のフォームには一連の選択ボタンがあります
2) ボタンをクリックすると、既存のウィンドウの上に進行状況バー ウィンドウが表示されます
3) 進行状況ウィンドウが閉じ、ページ ナビゲーションを使用して 1 番目のフォームが新しい 2 番目のフォームに切り替わります

問題は、2 番目のフォーム (およびウィンドウ全体) にフォーカスがなくなったことです。本当に困っているのは、ウィンドウが OnKeyDown() 呼び出しを受けなくなったことです (まだ一番上のウィンドウです)。Tab キーを押すと、最初のメニュー オプションが強調表示され、次のキー ストロークで OnKeyDown() が発生します。また、alt-tab で別のアプリに移動してから、alt-tab でウィンドウに戻ると、OnKeyDown() の受信が再び開始されます。

ダイアログの後にフォーカスがどこにあるかをどのように把握するのですか?

4

1 に答える 1

0

ナビゲーションを使用している場合、フォーカス可能であると仮定して、フォーカスはナビゲートしたページに切り替わります。

これは、Page の Focused イベント ハンドルにブレークポイントを設定することで確認できます。

または、明示的な control.SetFocus() を page.Navigated ハンドラーで使用できます。

于 2013-11-06T17:20:54.273 に答える