クリックするとポップアップが開くボタンがあります。ポップアップは、より多くのボタンを含むサブメニューです。サブメニューのいずれかのボタンをクリックすると、ポップアップが閉じます。また、ユーザーがポップアップの外側をクリックすると、ポップアップが閉じるようにしたい。また、大部分の画面は、OpenGL Winフォームコントロールを表示するWindowsFormsHostに取り込まれることに注意することも重要です。閉じる方法WPFのサブメニューとして使用されるポップアップ
サブメニューボタンをクリックしたときにポップアップを閉じることができました。それらのボタンのクリックハンドラ内で私はポップアップを閉じます。しかし、他の場所をクリックしたときにポップアップを閉じると、問題に遭遇しました。
物事は私が試してみた:
falseにPopUp.StaysOpenを設定します。これは、画面上の他の場所をクリックするとポップアップが閉じられるという点で機能します。しかし、Winフォームコントロールでは、これまでのアクションを実行するためにポップアップを閉じるためにクリックする必要があるようです。これは非常に望ましくない。
私は、ポップアップを開き、StaysOpenをtrueに設定するボタンのLostFocusイベントを処理しようとしました。これは、ポップアップをクリックしても、Winフォームコントロールの2回目のクリックは必要ありません。今問題は、LostFocusイベントが処理され、ポップアップ上の任意のボタンをクリックする前にポップアップが閉じられたことです。これにより、サブメニューが使用できなくなります。