UIElement.RemoveHandler(RoutedEvent, Delegate) UIElement.RemoveHandler(RoutedEvent, Delegate) UIElement.RemoveHandler(RoutedEvent, Delegate) Method

정의

지정된 라우트된 이벤트 처리기를 이 요소에서 제거합니다.Removes the specified routed event handler from this element.

public:
 virtual void RemoveHandler(System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler);
public void RemoveHandler (System.Windows.RoutedEvent routedEvent, Delegate handler);
abstract member RemoveHandler : System.Windows.RoutedEvent * Delegate -> unit
override this.RemoveHandler : System.Windows.RoutedEvent * Delegate -> unit

매개 변수

routedEvent
RoutedEvent RoutedEvent RoutedEvent

처리기가 연결된 라우팅된 이벤트의 식별자입니다.The identifier of the routed event for which the handler is attached.

handler
Delegate Delegate Delegate

이 요소의 이벤트 처리기 컬렉션에서 제거할 특정 처리기 구현입니다.The specific handler implementation to remove from the event handler collection on this element.

구현

예제

다음 예제에서는 RemoveHandler 이벤트 래퍼 정의의 일부로.The following example uses RemoveHandler as part of an event wrapper definition.

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); }
}
Public Shared ReadOnly TapEvent As RoutedEvent = EventManager.RegisterRoutedEvent("Tap", RoutingStrategy.Bubble, GetType(RoutedEventHandler), GetType(MyButtonSimple))

' Provide CLR accessors for the event
Public Custom Event Tap As RoutedEventHandler
    AddHandler(ByVal value As RoutedEventHandler)
        Me.AddHandler(TapEvent, value)
    End AddHandler

    RemoveHandler(ByVal value As RoutedEventHandler)
        Me.RemoveHandler(TapEvent, value)
    End RemoveHandler

    RaiseEvent(ByVal sender As Object, ByVal e As RoutedEventArgs)
        Me.RaiseEvent(e)
    End RaiseEvent
End Event

설명

이 사용 하 여에 대 한 가장 일반적인 시나리오 APIAPI 구현 하는 경우는 합니다 CLR(공용 언어 런타임)common language runtime (CLR) 연결 된 사용자 지정 라우트된 이벤트 처리기에 대 한 "제거" 논리를 구현 하는 경우에 특히 "래퍼" 이벤트를 CLRCLR 수준.The most common scenario for using this APIAPI is when you implement the CLR(공용 언어 런타임)common language runtime (CLR) "wrapper" event that is associated with a custom routed event, specifically when you implement the "remove" logic for handlers at the CLRCLR level. 이 예제 주의 섹션에서는이 시나리오를 보여 줍니다.The example that follows this remarks section illustrates this scenario.

다음과 같은 메서드 호출에 대 한 입력된 매개 변수와 일치 하는 조건으로 등록 된 처리기가 없는 경우에이 메서드를 호출 하면 효과가 없습니다.Calling this method has no effect if there were no handlers registered with criteria that matches the input parameters for the method call.

둘 이상의 이벤트 처리기 저장소는 제거, 첫 번째 처리기만 조건과 일치 하는 하나의 처리기 연결 됩니다.If more than one handler is attached that matched the criteria, only the first handler in the event handler store is removed. 이 동작은 일치 CLRCLR 의 동작을 -= 연산자입니다.This behavior is consistent with CLRCLR behavior of the -= operator.

모두 routedEventhandler 않을 null합니다.Neither routedEvent nor handler may be null. 두 값을 제공 하는 동안 null 예외가 발생 합니다.Attempting to provide either value as null will raise an exception.

이 메서드는 무시 합니다 handledEventsToo 처리기가 처음 경우 제공 되는 매개 변수 정보를 사용 하 여 추가 AddHandler(RoutedEvent, Delegate, Boolean) 는 이미 처리 된 이벤트를 처리할 수 있도록 서명 합니다.This method ignores the handledEventsToo parameter information, which is provided if the handler was first added with the AddHandler(RoutedEvent, Delegate, Boolean) signature that enables handling of already-handled events. 두 가지 형식의 처리기 제거 됩니다.Either type of handler is removed.

적용 대상

추가 정보