UIElement.RemoveHandler(RoutedEvent, Delegate) Método

Definição

Remove o manipulador de eventos roteados especificado desse elemento.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

Parâmetros

routedEvent
RoutedEvent

O identificador do evento roteado ao qual o manipulador está anexado.The identifier of the routed event for which the handler is attached.

handler
Delegate

A implementação do manipulador específico para remover da coleção de manipuladores de eventos neste elemento.The specific handler implementation to remove from the event handler collection on this element.

Implementações

Exemplos

O exemplo a seguir usa RemoveHandler como parte de uma definição de wrapper de evento.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

Comentários

O cenário mais comum para usar essa API é quando você implementa o CLR (Common Language Runtime)common language runtime (CLR) evento "wrapper" que está associado a um evento roteado personalizado, especificamente quando você implementa a lógica "Remove" para manipuladores no nível de CLRCLR.The most common scenario for using this API is when you implement the CLR (Common Language Runtime)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. O exemplo a seguir esta seção de comentários ilustra esse cenário.The example that follows this remarks section illustrates this scenario.

Chamar esse método não terá nenhum efeito se não houver manipuladores registrados com critérios que correspondam aos parâmetros de entrada para a chamada de método.Calling this method has no effect if there were no handlers registered with criteria that matches the input parameters for the method call.

Se mais de um manipulador for anexado que correspondeu aos critérios, somente o primeiro manipulador no repositório do manipulador de eventos será removido.If more than one handler is attached that matched the criteria, only the first handler in the event handler store is removed. Esse comportamento é consistente com CLRCLR comportamento do operador de -=.This behavior is consistent with CLRCLR behavior of the -= operator.

Nem routedEvent nem handler podem ser null.Neither routedEvent nor handler may be null. A tentativa de fornecer um valor como null gerará uma exceção.Attempting to provide either value as null will raise an exception.

Esse método ignora as informações do parâmetro handledEventsToo, que é fornecido se o manipulador foi adicionado pela primeira vez com a assinatura AddHandler(RoutedEvent, Delegate, Boolean) que habilita o tratamento de eventos já manipulados.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. Um dos tipos de manipulador é removido.Either type of handler is removed.

Aplica-se a

Veja também