UIElement.OnMouseRightButtonDown(MouseButtonEventArgs) 方法


當未處理的 MouseRightButtonDown 路由事件到達其路由中衍生自此類別的項目時叫用。Invoked when an unhandled MouseRightButtonDown routed event reaches an element in its route that is derived from this class. 實作這個方法可為此事件加入類別處理。Implement this method to add class handling for this event.

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



包含事件資料的 MouseButtonEventArgsThe MouseButtonEventArgs that contains the event data. 事件資料會報告滑鼠右鍵已按下。The event data reports that the right mouse button was pressed.


MouseRightButtonDown事件似乎是傳送反升路由,但實際上是以間接方式傳送。The MouseRightButtonDown event appears to travel a bubbling route but actually travels in an indirect way. Mouse.MouseDown 是反升路由的基礎事件,而每個事件 UIElement 路由沿著事件路由都會使用相同的處理來引發直接路由事件 MouseRightButtonDownMouse.MouseDown is the underlying event that is bubble routed, and each UIElement along the event route uses identical handling to raise the direct routed event MouseRightButtonDown. 雖然您可以將此事件標示為已 MouseRightButtonDown 處理,但處理的狀態並不會沿著事件路由永久保存至其他元素。Although you can mark the MouseRightButtonDown event as handled for purposes of this element, the handled state does not perpetuate to other elements along the event route. 不過,您可能會想要將事件標示為已處理,以防止一般的實例處理常式 (未指定 handledEventsToo) 的呼叫。However, you might want to mark the event as handled in order to prevent general instance handlers (those that did not specify handledEventsToo) from being invoked.

中一般滑鼠事件處理的預設執行 UIElement Mouse.MouseDown 會接聽,並將其轉換為適當的本機事件。The default implementation for general mouse event handling in UIElement listens for Mouse.MouseDown and converts it to an appropriate local event. 如果您想要覆寫此邏輯,則必須建立衍生類別。If you want to override this logic, you must create a derived class. 在衍生類別的靜態函式中,註冊的替代類別處理常式 Mouse.MouseDownIn the static constructor of your derived class, register an alternative class handler for Mouse.MouseDown. 您無法藉由覆寫來變更的滑鼠處理行為 UIElement OnMouseRightButtonDownYou cannot change the mouse handling behavior of UIElement by overriding OnMouseRightButtonDown.

或者,您可以覆寫這個方法,以便變更特定滑鼠狀態的事件處理。Alternatively, you can override this method in order to change event handling for a specific mouse state. 您是否選擇呼叫基底執行取決於您的案例。Whether you choose to call the base implementation depends on your scenario. 無法呼叫基底會針對也預期叫用的上階類別,停用該滑鼠事件的預設輸入處理 OnMouseRightButtonDownFailing to call base disables default input handling for that mouse event on ancestor classes that also expect to invoke OnMouseRightButtonDown. 例如,您可以 Control 在衍生類別中衍生和覆寫, OnMouseRightButtonDown 而不需要呼叫基底; 不過,此覆寫會停用控制項上的內容功能表服務,這是 Control 預設行為的一部分。For example, you can derive from Control and override OnMouseRightButtonDown in your derived class without calling base; however, this override disables the context menu services on your control, which are part of the Control default behavior.