我的應用程序有AlwaysOnTop
行爲,我希望它在鼠標離開時失去焦點。有一些按鈕與上下文菜單。問題是,當下一個ContextMenu
打開MouseLeave
事件自動觸發,即使鼠標仍然在我的窗口的子窗口,它立即關閉,因爲我將焦點設置到其他外部應用程序當ContextMenu打開時MouseLeave觸發器
private void This_MouseLeave(object sender, MouseEventArgs e)
{
if (!this.IsMouseOver)
{
OtherExternalWindow.Focus();
}
}
我曾嘗試添加一個檢查,如果鼠標沒有結束,但似乎上下文菜單不被視爲我的窗口(?)的孩子。我認爲這可以通過命名我的所有ContextMenus並檢查它們中的任何一個是否打開來實現,但是我希望避免這種方法,除非這是不可能的。
如何在鼠標離開時切換焦點,但不打破上下文菜單行爲?
ContextMenu不是您的窗口的子項。它本身就是一種窗戶。所以當鼠標移過ContextMenu時,它實際上會離開你的窗口。 – mm8