UIElement.OnPreviewMouseRightButtonDown(MouseButtonEventArgs) UIElement.OnPreviewMouseRightButtonDown(MouseButtonEventArgs) UIElement.OnPreviewMouseRightButtonDown(MouseButtonEventArgs) UIElement.OnPreviewMouseRightButtonDown(MouseButtonEventArgs) Method

定义

当某个未处理的 PreviewMouseRightButtonDown 路由事件在其路由中到达派生自此类的某个元素时调用。Invoked when an unhandled PreviewMouseRightButtonDown routed event reaches an element in its route that is derived from this class. 实现此方法可为此事件添加类处理。Implement this method to add class handling for this event.

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

参数

e
MouseButtonEventArgs MouseButtonEventArgs MouseButtonEventArgs MouseButtonEventArgs

包含事件数据的 MouseButtonEventArgsThe MouseButtonEventArgs that contains the event data. 事件数据报告称已按下鼠标右键。The event data reports that the right mouse button was pressed.

注解

PreviewMouseRightButtonDown事件看起来是传递隧道路由, 但实际以间接方式传播。The PreviewMouseRightButtonDown event appears to travel a tunneling route but actually travels in an indirect way. Mouse.PreviewMouseDown是隧道路由的基础事件, 每个UIElement事件路由沿事件路由都使用相同的处理来引发直接路由事件。 MouseRightButtonDownMouse.PreviewMouseDown is the underlying event that is tunnel routed, and each UIElement along the event route uses identical handling to raise the direct routed event MouseRightButtonDown. 虽然您可以将PreviewMouseRightButtonDown事件标记为已处理, 以便进行此元素, 但已处理状态并不保持事件路由中的其他元素。Although you can mark the PreviewMouseRightButtonDown 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.PreviewMouseDown侦听并将其转换为适当的本地事件。The default implementation for general mouse event handling in UIElement listens for Mouse.PreviewMouseDown and converts it to an appropriate local event. 如果要重写此逻辑, 必须创建派生类。If you want to override this logic, you must create a derived class. 在派生类的静态构造函数中, 为Mouse.PreviewMouseDown注册替代类处理程序。In the static constructor of your derived class, register an alternative class handler for Mouse.PreviewMouseDown. 不能UIElement通过重写OnPreviewMouseRightButtonDown来更改的鼠标处理行为。You cannot change the mouse handling behavior of UIElement by overriding OnPreviewMouseRightButtonDown.

或者, 您可以重写此方法, 以便为特定的鼠标状态更改事件处理。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. 如果无法调用 base, 将禁用对也需要调用OnPreviewMouseRightButtonDown的上级类上的鼠标事件的默认输入处理。Failing to call base disables default input handling for that mouse event on ancestor classes that also expect to invoke OnPreviewMouseRightButtonDown. 例如, 你可以在派生类Control中派生OnPreviewMouseRightButtonDown , 而在不调用 base 的情况下进行重写; 但是, 此替代禁用控件上的上下文菜单服务, Control这是默认行为的一部分。For example, you can derive from Control and override OnPreviewMouseRightButtonDown 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.

适用于