UIElement.OnMouseDown(MouseButtonEventArgs) 方法

定義

當未處理的 MouseDown 附加事件到達其路由中衍生自此類別的項目時叫用。 實作這個方法可為此事件加入類別處理。

protected:
 virtual void OnMouseDown(System::Windows::Input::MouseButtonEventArgs ^ e);
protected virtual void OnMouseDown (System.Windows.Input.MouseButtonEventArgs e);
abstract member OnMouseDown : System.Windows.Input.MouseButtonEventArgs -> unit
override this.OnMouseDown : System.Windows.Input.MouseButtonEventArgs -> unit
Protected Overridable Sub OnMouseDown (e As MouseButtonEventArgs)

參數

e
MouseButtonEventArgs

包含事件資料的 MouseButtonEventArgs。 此事件資料會報告有關按下的滑鼠按鈕以及已處理狀態的詳細資訊。

備註

滑鼠按鍵動作也會由專用的輸入管理員處理。 其他依賴滑鼠按鍵動作的程式設計功能,例如輸入和命令系結,可能會在動作公開為一般滑鼠按鍵動作之前叫用動作的處理常式。 如果這些輸入系統功能會將事件標示 Mouse.MouseDown 為已處理, OnMouseDown 則不會叫用。

如果您使用這個類別處理常式將事件標示為已處理,則可能會影響下列事件: MouseLeftButtonDownMouseRightButtonDown 。 當收到時,可能會在接收專案 Mouse.MouseDown 上引發上述任一事件。

如果您將此事件標示為在類別處理中處理,則仍會引發子事件;不過,他們會在事件資料中傳遞已處理的狀態。 如果事件是在類別處理中處理,除非您明確使用 , handledEventsTootrue 才能附加處理常式,否則不會叫用 AddHandler(RoutedEvent, Delegate, Boolean) 子事件的實例處理常式。 除非這些類別處理常式已向 簽章 handledEventsTootrue 註冊, RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) 否則不會叫用類別處理常式。 藉由處理 OnMouseDown ,表示您的類別處理會考慮所有可能的滑鼠按鍵向下動作。 此行為可能不必要;因此,當您使用此虛擬方法將事件標示為已處理時,請小心。

每個按鈕特定的直接事件也有虛擬 On* 方法;請考慮是否更適合覆寫這些按鈕特定的類別處理常式。

這個方法沒有預設實作。 由於繼承中的中繼類別可能會實作此方法,因此建議您在實作中呼叫基底實作。

這個方法的用途類似于 Common Language Runtime (CLR) 事件模式 On* 方法:此方法提供方法,藉由建立類別處理常式而非實例處理常式來處理衍生類別的比對事件。 在此情況下,比對事件是路由事件。 On* 方法的實作模式與路由事件不同,因為路由事件可由子專案引發,這不一定是將叫用處理程式的專案。 因此,您的實作必須檢查事件資料的來源屬性。 在大部分情況下,它不應該嘗試重新建立事件。

藉由覆寫這個方法,或藉由向 註冊類別處理常式 RegisterClassHandler ,的衍生類別 UIElement 可以在事件路由收到事件時呼叫私用類別處理常式方法。 其中一個類別處理適合的案例是操作事件資料,並將路由事件標示為已處理。

適用於

另請參閱