私の困惑は次のとおりです。コンテンツの子要素がヒット テストで表示されない可能性がある場合、[LostFocus イベントを発生させるコードは何でも] フォーカスがなくなったことをどのように判断するのでしょうか?
やや関連性のある裏話
私は最近、改善するプロジェクトを開始しましたPopup
。にバインドしようとすると、開いたままになることがあります。当然のことながら、私は と の処理から始めましたが、これらはしばしば機能せず、必要に応じて(「この要素にフォーカスを設定する試み」)を使用してコードで確実に強制することもできませんでした。IsOpen
ToggleButton.IsChecked
GotFocus
LostFocus
Focus()
私の装飾ベースのソリューションでは、最初の洗練されていないアプローチは、Win32 でグローバルな MouseDown イベントをキャプチャし、マウス座標が装飾境界内にあるかどうかを判断することです。ただし、そのコンテンツの一部がヒット テストで表示されないように意図されている場合、これは単純に崩壊します。