我有一个WPF Popup
控件,其中包含一些编辑控件(列表框、文本框、复选框),并且它们之间有相当多的空白间隔。
Popup.StaysOpen
被设置为False
,这是必需的。如果用户在应用程序中的其他位置单击,则应将编辑操作视为已中止,并关闭弹出窗口。
不幸的是,每当用户单击弹出窗口的背景区域(即编辑控件之间的空白区域)时,弹出窗口也会关闭。
我尝试将弹出窗口设置为Focusable
。我还尝试将弹出窗口的子元素(一个Border
)设置为可聚焦。但两者都没有成功。
此外,鼠标事件似乎会穿过弹出窗口。当我单击弹出窗口下方的任何元素时,该元素就会获得焦点。这是尽管Popup
和Border
(我要点击的元素)的IsHitTestVisible
和Focusable
都设置为true
。
Popup
派生的ArmouredPopup
类。它可以重写OnMouseDown
。我认为这是默认弹出窗口类中的一个错误。 - Adrian Ratnapala