RoutedEventArgs.Handled RoutedEventArgs.Handled RoutedEventArgs.Handled RoutedEventArgs.Handled Property

Definición

Obtiene o establece un valor que indica el estado actual del control de eventos para un evento enrutado cuando recorre la ruta.Gets or sets a value that indicates the present state of the event handling for a routed event as it travels the route.

public:
 property bool Handled { bool get(); void set(bool value); };
[get: System.Security.SecurityCritical]
[set: System.Security.SecurityCritical]
public bool Handled { get; set; }
member this.Handled : bool with get, set
Public Property Handled As Boolean

Valor de propiedad

Si se establece, se define en true si el evento se debe marcar como controlado; en caso contrario, false.If setting, set to true if the event is to be marked handled; otherwise false. Si se lee este valor, true indica que un controlador de clase o algún controlador de instancia de la ruta ya ha marcado este evento como controlado.If reading this value, true indicates that either a class handler, or some instance handler along the route, has already marked this event handled. falseindica que ese controlador no ha marcado el evento como controlado.false.indicates that no such handler has marked the event handled.

El valor predeterminado es false.The default value is false.

Ejemplos

En el ejemplo siguiente se implementa un controlador de eventos que marca el evento como controlado.The following example implements an event handler that marks the event handled.

protected override void OnPreviewMouseRightButtonDown(System.Windows.Input.MouseButtonEventArgs e)
{
    e.Handled = true; //suppress the click event and other leftmousebuttondown responders
    MyEditContainer ec = (MyEditContainer)e.Source;
    if (ec.EditState)
    { ec.EditState = false; }
    else
    { ec.EditState = true; }
    base.OnPreviewMouseRightButtonDown(e);
}
Protected Overrides Sub OnPreviewMouseRightButtonDown(ByVal e As System.Windows.Input.MouseButtonEventArgs)
    e.Handled = True 'suppress the click event and other leftmousebuttondown responders
    Dim ec As MyEditContainer = CType(e.Source, MyEditContainer)
    If ec.EditState Then
        ec.EditState = False
    Else
        ec.EditState = True
    End If
    MyBase.OnPreviewMouseRightButtonDown(e)
End Sub

Comentarios

Al marcar el evento como controlado, se limitará la visibilidad del evento enrutado a los agentes de escucha a lo largo de la ruta del evento.Marking the event handled will limit the visibility of the routed event to listeners along the event route. El evento sigue atravesando el resto de la ruta, pero solo los controladores agregados específicamente HandledEventsToo con true en AddHandler(RoutedEvent, Delegate, Boolean) la llamada al método se invocarán en respuesta.The event does still travel the remainder of the route, but only handlers specifically added with HandledEventsToo true in the AddHandler(RoutedEvent, Delegate, Boolean) method call will be invoked in response. No se invocarán los controladores predeterminados en agentes de escucha Lenguaje XAML (Extensible Application Markup Language)Extensible Application Markup Language (XAML)de instancia (como los expresados en).Default handlers on instance listeners (such as those expressed in Lenguaje XAML (Extensible Application Markup Language)Extensible Application Markup Language (XAML)) will not be invoked. El control de eventos marcados como controlados no es un escenario común.Handling events that are marked handled is not a common scenario.

Si es un autor del control que define sus propios eventos, las decisiones que tome en relación con el control de eventos en el nivel de clase afectarán a los usuarios del control, así como a los usuarios de controles derivados y, potencialmente, a otros elementos contenidos en el control. o que contienen el control.If you are a control author defining your own events, the decisions you make regarding event handling at the class level will impact users of your control as well as any users of derived controls, and potentially other elements that are either contained by your control or that contain your control. Para más información, vea Marcar eventos enrutados como controlados y control de clases.For more information, see Marking Routed Events as Handled, and Class Handling.

En raras ocasiones, es adecuado controlar los eventos en los Handled que está truemarcado y modificar los argumentos del evento cambiando Handled a false.In very rare circumstances it is appropriate to handle events where Handled is marked true, and modify the event arguments by changing Handled to false. Esto puede ser necesario en determinadas áreas de eventos de entrada de controles, como el control de KeyDown claves TextInput de frente a los eventos de entrada de nivel bajo y alto nivel que compiten por el control, y cada uno está intentando trabajar con una estrategia de enrutamiento diferente.This can be necessary in certain areas of input events of controls, such as key handling of KeyDown versus TextInput where low level and high level input events compete for the handling, and each is attempting to work with a different routing strategy.

Se aplica a