2009-06-20 180 views
1

我知道每個控件都有一個鼠標單擊事件,但有沒有方法可以確定鼠標單擊不在控件上?WPF鼠標單擊事件

+0

1.不,每個控件都沒有鼠標點擊事件。只有邏輯上可點擊的內容 - 例如按鈕,複選框,菜單項,超鏈接 - 具有Click事件。其他控件,如TextBoxes和Images,則不會。如果您想要其他可點擊的內容 - 例如一個圖像 - 那麼你應該重新設計一個按鈕。 2.如果點擊不在控件X上,則控件X將不會收到通知 - 控件Y(您實際*已經*點擊的那個)獲取該事件。 – 2009-06-20 23:05:10

回答

1

您可以使用this code查找窗口上的所有控件或目標類型的可視元素並處理它的鼠標事件。

0

您可以檢查IsMouseOver是否爲false,並且如果您想要在IsMouseOver == false時掛鉤操作,則可以覆蓋該dp的元數據。

0

您可以調用CaptureMouse,然後該對象將接收所有鼠標事件。然後,您可以從鼠標點確定它是否在您的控制範圍內。或者您可以聽取LostMouseCapture事件。

0

這不會爲Click事件工作(因爲沒有隧道的版本,只有冒泡版),但你可以在Window類處理路由PreviewMouseLeftButtonDown和檢查,看看是否在目標控制在熱播樹。