私はかなりの空白でレイアウトされたいくつかの編集コントロール(リストボックス、テキストボックス、チェックボックス)を含むWPF Popup
コントロールを持っています。背景エリアをクリックしたときにWPFポップアップが閉じるのはなぜですか?
Popup.StaysOpen
は、False
に設定されています。ユーザーがアプリケーション内の他の場所をクリックすると、編集操作は中止されたとみなされ、ポップアップが閉じます。
ポップアップは、ユーザーがポップアップの背景領域(編集コントロール間のスペース)内をクリックするたびに閉じます。
ポップアップをFocusable
に設定しようとしました。私はまた、ポップアップの子供(Border
)にフォーカスを設定しようとしました。いずれの正面にも運がない。
また、マウスイベントがポップアップをトンネルしているようです。ポップアップの下にある要素は、クリックするとフォーカスされます。これは、IsHitTestVisible
とFocusable
の両方がtrue
に設定されているPopup
とBorder
(どちらが私がクリックしているか)の両方にかかわらずです。
+1とても素敵でエレガント! –
すばらしい解決策! Generic.xamlで定義されたコントロールで、EventToCommandを使用し、EventArgsをコマンドに渡してからHandled = Trueを設定することで、それを実行することさえできました。ありがとう! – Dror
偶数ハンドラをトリッキーな場所に入れるもう一つの方法は、 'Popup'から派生した' ArmouredPopup'クラスを派生させることです。 'OnMouseDown'を上書きすることができます。私はこれをデフォルトのポップアップクラスのバグと見なします。 –