UIElement.MouseLeftButtonDown 活動
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
當滑鼠左鍵按下時,滑鼠指標正好位於此元素上方。
public:
virtual event System::Windows::Input::MouseButtonEventHandler ^ MouseLeftButtonDown;
public event System.Windows.Input.MouseButtonEventHandler MouseLeftButtonDown;
member this.MouseLeftButtonDown : System.Windows.Input.MouseButtonEventHandler
Public Custom Event MouseLeftButtonDown As MouseButtonEventHandler
事件類型
實作
備註
雖然這個 路由事件 看似沿著元素樹的氣泡路徑前進,但實際上它是一個直接路由事件,會被每個 UIElement元素樹不斷提升與重新提起。
此事件是多個相關事件之一,報告底層事件的滑鼠按鈕細節,底層 Mouse.MouseDown 事件是沿事件路徑由每個元素處理的附加事件。
此事件的事件資料會暴露底層 Mouse.MouseDown 事件的事件資料。 如果該事件在事件路徑上被標記為已處理,滑鼠按鈕專屬事件仍會被觸發;然而,必須透過明確呼叫 AddHandler來新增滑鼠按鈕特定事件的處理者,並可選擇處理已標記為已處理的事件,才能成為該事件的監聽者。 如果你標記 MouseLeftButtonDown 已處理,實際上就是讓沿途所有後續聽者以及所有相關事件都標記 Mouse.MouseDown 已處理。 這可能包括類別處理程序產生的事件,例如 MouseDoubleClick。
概念上,將此事件(以及 上的其他 UIElement滑鼠按鈕事件)視為滑鼠「服務」(類別提供 Mouse 服務定義)。 這個事件增加了不必在事件資料中檢查原始滑鼠事件的滑鼠按鈕狀態(左右、上下)的便利。 對於更進階的情況,例如檢查非標準按鈕的狀態,你可能需要使用類別上的 Mouse API,而非類別上的 UIElement。
Important
有些控制類別可能內建滑鼠按鈕事件的類別處理。 左鍵事件是最有可能在控制項中處理類別的事件。 類別處理通常會標記底層 Mouse 類別事件為已處理。 一旦事件標記為已處理,通常不會再啟動與該元素相關的其他實例處理器。 其他附著於 UI 樹中根節點方向冒泡元素的類別或實例處理器,通常也不會被提出。
你可以解決前面重要說明的問題,同時仍能接收 MouseLeftButtonDown 有類別處理的衍生類別的左鍵事件事件,方法是以下任一方案:
為事件附加 PreviewMouseDown 處理器,該事件未被控制裝置標記為已處理。 請注意,由於這是預覽事件,路由從根節點開始,向下隧道到控制節點。
透過呼叫 AddHandler 並選擇能讓處理程序員在路由事件資料中標記為已處理事件的簽章選項,程序性地在控制端註冊處理程序。
路由事件資訊
| Item | 價值觀 |
|---|---|
| 識別碼欄位 | MouseLeftButtonDownEvent |
| 路由策略 | 直接 |
| 代理人 | MouseButtonEventHandler |
- 覆寫 OnMouseLeftButtonDown 以實作衍生類別中此事件的類別處理。