5

私は WPF プロジェクトに取り組んでおり、いくつかの userControls がアクティブまたは非アクティブになるたびにイベントを発生させようとしています。

これらの userControls には、他の多くのコントロールが含まれています。

GotFocususerControl イベントとを使用してこれを達成しようとしましたLostFocusが、userControl 内のコントロールを操作すると userControl がフォーカスを失うため、これらのイベントは必要な方法で機能しません。

したがって、私の質問は次のとおりです。ユーザーがその内部のコントロールを操作しているときに userControl を管理する方法はありますか?Activeユーザーが別の userControl に移動すると、この最初のユーザーはInactive???を取得しますか?

前もって感謝します。

4

2 に答える 2

2

@LPLと@Rachelのコメントのおかげで問題を解決できました。

私はイベントを使わなければならずUIElement.IsKeyboardFocusWithinChanged、それは完璧に機能しました。

最初はコールバックメソッドが無限に発生するという問題がありましたが、実際にMessageBoxはイベントが発生するたびに表示していたIsKeyboardFocusWithinChangedため、IsKeyboardFocusWithinプロパティが変更されて無限ループが発生していました。しかし、レイチェルのアドバイスのおかげで、私はそれを解決する方法を理解することができました。

于 2012-06-29T17:20:58.523 に答える
0

よくわかりませんが、フォーカスを取得したコントロールがコントロールの子であるかどうかをチェックして、フォーカスが失われた場合に1つの作業を行うことができます。コントロール。これがお役に立てば幸いです

于 2012-06-28T18:48:50.383 に答える