共用方式為


UIElement.OnPreviewMouseDown(MouseButtonEventArgs) 方法

定義

當未處理的 PreviewMouseDown 附加路由事件到達衍生自這個類別之路由中的專案時叫用。 實作此方法以新增此事件的類別處理。

protected:
 virtual void OnPreviewMouseDown(System::Windows::Input::MouseButtonEventArgs ^ e);
protected 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 Overridable Sub OnPreviewMouseDown (e As MouseButtonEventArgs)

參數

e
MouseButtonEventArgs

包含事件數據的 MouseButtonEventArgs。 事件數據會報告按下一或多個滑鼠按鈕。

備註

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

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

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

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

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

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

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

適用於

另請參閱