Share via


UIElement3D.OnPreviewMouseDown(MouseButtonEventArgs) 方法

定義

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

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

參數

e
MouseButtonEventArgs

包含事件資料的 MouseButtonEventArgs。 事件資料會報告一個或多個滑鼠按鈕已按下。

備註

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

如果您使用這個類別處理程式將事件標示為已處理,則可能會影響下列事件: PreviewMouseLeftButtonDownPreviewMouseRightButtonDown。 收到時,這些事件可能會在接收項目上 Mouse.PreviewMouseDown 引發。

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

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

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

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

藉由覆寫這個方法,或藉由向 RegisterClassHandler註冊類別處理程式,衍生類別 UIElement3D 可以在事件路由收到事件時呼叫私用類別處理程式方法。 其中一個適合類別處理的案例是操作事件數據,並將路由事件標示為已處理。 特別針對預覽事件的另一個案例是將它們標示為已處理,因此不會叫用相符的反升類別處理程式。

適用於

另請參閱