Mouse.MouseDown 附加事件

定義

發生於按下任何滑鼠按鍵時。

C#
see AddMouseDownHandler, and RemoveMouseDownHandler

備註

若要判斷哪一個滑鼠按鈕已按下,請檢查 ChangedButton 傳遞至處理程式中的 MouseButtonEventArgs 屬性。

這是附加的事件。 WPF 會將附加事件實作為路由事件。 附加事件基本上是一種 XAML 語言概念,可參考未定義該事件的物件上可處理的 XAML 語言概念,WPF 也會藉由讓事件周遊路由來擴充該事件。 附加事件在程式代碼中沒有直接處理語法;若要在程式代碼中附加路由事件的處理程式,您可以使用指定的 Add*Handler 方法。 如需詳細資訊,請參閱 附加事件概觀

Windows Presentation Foundation (WPF) 架構會以這個附加事件為基礎建置,方法是將它呈現為兩個不同的 Common Language Runtime (CLR) 和 ContentElementMouseLeftButtonDownMouseRightButtonDown上的 UIElement 事件。 這些實作會處理基礎 MouseDown 事件,並讀取 事件的自變數,以判斷涉及左右滑鼠按鈕。 對於三鍵滑鼠,中央按鈕沒有架構層級的事件支援。 您應該使用 MouseDown 事件,並檢查 MiddleButton 事件自變數中的狀態。

重要

例如,Hyperlink一些ContentElement具有類似控件行為的衍生類別,可能會有滑鼠按鈕事件的固有類別處理。 滑鼠左鍵向下事件是控件中類別處理的最可能事件。 類別處理通常會將基礎 Mouse 類別事件標示為已處理。 一旦事件標示為已處理,附加至該元素的其他實例處理程式通常不會引發。 附加至 UI 樹狀結構根目錄之元素的任何其他類別或實例處理程式,通常也不會引發。

您可以解決上述重要注意事項中所述的問題,並且仍會使用下列其中一個解決方案,在具有類別處理的衍生類別上接收 MouseDown 滑鼠左鍵向下事件的事件:

  • 附加 事件的處理程式 PreviewMouseDown ,不會標示為控件所處理。 請注意,因為這是預覽事件,所以路由會從根目錄開始,並向下通道至控件。

  • 藉由呼叫 AddHandler 並選擇簽章選項,在控件上註冊處理程式,讓處理程式接聽事件,即使它們已標示為在路由事件數據中處理也一樣。

對於與滑鼠相關的路由事件,請小心處理它們的方式或時機。 做出適當選擇是否也應該通知父元素是否有任何指定滑鼠動作的困難,事實上,WPF 架構為何選擇模型讓基礎滑鼠路由事件呈現為路由上的 CLR 事件。 通道滑鼠事件有類似的問題。 您應該處理事件,而不會由進一步的子系處理到來源,以及影響組合片段可能具有預期滑鼠行為的控件有何影響?

路由事件資訊

標識元欄位 MouseDownEvent
路由策略 鼓 泡
代理人 MouseButtonEventHandler

適用於

產品 版本
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9