本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

UIElement.RemoveHandler 方法 (RoutedEvent, Delegate)

 

从此元素中删除指定的路由事件处理程序。

命名空间:   System.Windows
程序集:  PresentationCore(位于 PresentationCore.dll)

public void RemoveHandler(
	RoutedEvent routedEvent,
	Delegate handler
)

参数

routedEvent
Type: System.Windows.RoutedEvent

附加处理程序的路由事件的标识符。

handler
Type: System.Delegate

要从此元素的事件处理程序集合中删除的特定处理程序实现。

最常见的方案使用此 API ,在实现 公共语言运行时 (CLR) 自定义的路由事件,特别是,当您实现处理程序"删除"逻辑与相关联的"包装器"事件 CLR 级别。 以下示例中这一节说明了这种情况下的备注。

如果不没有用条件相匹配的输入的参数的方法调用注册的任何处理程序,则调用此方法起任何作用。

如果多个处理程序附加事件处理程序存储区删除匹配的条件,只有第一个处理程序。 此行为是与一致 CLR 行为 -= 运算符。

既不 routedEvent ,也不 handler 可能 null 尝试提供上述任意值作为 null 将引发异常。

此方法将忽略 handledEventsToo 第一个处理程序时提供的参数信息添加与 AddHandler(RoutedEvent, Delegate, Boolean) 签名,它使已处理事件的处理。 删除任一类型的处理程序。

下面的示例使用 RemoveHandler 作为事件包装定义的一部分。

public static readonly RoutedEvent TapEvent = EventManager.RegisterRoutedEvent(
    "Tap", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(MyButtonSimple));

// Provide CLR accessors for the event
public event RoutedEventHandler Tap
{
        add { AddHandler(TapEvent, value); } 
        remove { RemoveHandler(TapEvent, value); }
}

.NET Framework
自 3.0 起可用
Silverlight
自 3.0 起可用
Windows Phone Silverlight
自 7.0 起可用
返回页首
显示: