RegisterClassHandler中的classType参数

时间:2018-05-01 14:07:38

标签: c# wpf

classType参数的用途是什么:

open

来自msdn:“声明类处理的类的类型。”

但这似乎仍然有些模糊。

public static void RegisterClassHandler(Type classType, RoutedEvent routedEvent, Delegate handler);

我认为第一个处理程序最接近类声明处理程序。但是在按钮上添加第二个处理程序似乎也有效?什么是正确的方法呢?对于Mouse.MouseDownEvent,还可以在完全不相关的类中的按钮上添加处理程序吗?

1 个答案:

答案 0 :(得分:0)

当classType(或derivedType)的实例位于RoutedEvent的路由上时,RegisterClassHandler中的classType参数用于调用类处理程序。

例如,在以下代码中的Window实例上处理ButtonBase.ClickEvent:

EventManager.RegisterClassHandler(typeof(Window), ButtonBase.ClickEvent, Handler);

这就像在每个Window元素上添加(附加)处理程序一样:

<Window ButtonBase.Click="Handler">

因此classType不必是包含注册处理程序的代码的类。

处理程序中的发件人是classType的实例。