ContentElement.OnPreviewMouseUp(MouseButtonEventArgs) 方法

定义

当某个未处理的 PreviewMouseUp 附加事件在其路由中到达派生自此类的某个元素时调用。 实现此方法可为此事件添加类处理。

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

参数

e
MouseButtonEventArgs

包含事件数据的 MouseButtonEventArgs。 事件数据将报告已释放了一个或多个鼠标按钮。

注解

鼠标按钮操作也由专用输入管理器处理。 依赖于鼠标按钮操作的其他编程功能(如输入和命令绑定)可能会在操作作为常规鼠标按钮操作公开之前调用该操作的处理程序。 如果这些输入系统功能将 Mouse.PreviewMouseUp 事件标记为已处理, OnPreviewMouseUp 则不会调用 。

如果使用此类处理程序将事件标记为已处理,则可能会影响以下事件: PreviewMouseLeftButtonUpPreviewMouseRightButtonUp。 收到 时 Mouse.PreviewMouseUp ,可能会对接收元素引发上述任一事件。

如果将此事件标记为在类处理中已处理,则仍会引发子事件;但是,它们在事件数据中传递已处理的状态。 如果在类处理中处理事件,则不会调用子事件的实例处理程序,除非显式使用 AddHandler(RoutedEvent, Delegate, Boolean)handledEventsTootrue 附加处理程序。 也不会调用类处理程序,除非这些类处理程序是使用 handledEventsTootrue的签名注册的RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean)。 通过处理 OnPreviewMouseUp,意味着类处理会考虑所有可能的鼠标按钮向上操作。 此行为可能是不需要的;因此,使用此虚拟方法将事件标记为已处理时要小心。

每个特定于按钮的直接事件还具有虚拟 On* 方法;请考虑重写这些特定于按钮的类处理程序是否更合适。

此方法没有默认实现。 由于继承中的中间类可能实现此方法,因此建议在实现中调用基实现。

此方法的用途类似于公共语言运行时 (CLR) 事件模式 On* 方法:此方法提供通过建立类处理程序而不是实例处理程序来处理派生类中的匹配事件的方法。 在这种情况下,匹配事件是路由事件。 On* 方法的实现模式对于路由事件是不同的,因为路由事件可由子元素引发,子元素不一定是将调用处理程序的元素。 因此,实现需要检查事件数据的源属性。 在大多数情况下,它不应尝试重新触发事件。

通过重写此方法或使用 注册类处理程序 RegisterClassHandler,当沿事件路由收到事件时,的 ContentElement 派生类可以调用私有类处理程序方法。 适合类处理的一种方案是操作事件数据并将路由事件标记为已处理。

适用于

另请参阅