RoutedEventArgs.Handled Propiedad

Definición

Obtiene o establece un valor que indica el estado actual del control de eventos para un evento enrutado cuando recorre la ruta.

public:
 property bool Handled { bool get(); void set(bool value); };
public bool Handled { [System.Security.SecurityCritical] get; [System.Security.SecurityCritical] set; }
public bool Handled { get; set; }
[<get: System.Security.SecurityCritical>]
[<set: System.Security.SecurityCritical>]
member this.Handled : bool with 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. 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. false indica que ese controlador no ha marcado el evento como controlado.

El valor predeterminado es false.

Atributos

Ejemplos

En el ejemplo siguiente se implementa un controlador de eventos que marca el evento controlado.

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

Marcar el evento controlado limitará la visibilidad del evento enrutado a los agentes de escucha a lo largo de la ruta del evento. El evento sigue desplazando el resto de la ruta, pero solo se invocarán los controladores agregados específicamente con HandledEventsTootrue en la AddHandler(RoutedEvent, Delegate, Boolean) llamada al método en respuesta. No se invocarán controladores predeterminados en agentes de escucha de instancia (como los expresados en lenguaje de marcado de aplicaciones extensibles (XAML). El control de eventos marcados como controlados no es un escenario común.

Si es un autor de control que define sus propios eventos, las decisiones que tome con respecto al 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 por el control o que contienen el control. Para más información, vea Marcar eventos enrutados como controlados y control de clases.

En circunstancias muy raras, es adecuado controlar eventos donde Handled está marcado truecomo y modificar los argumentos del evento cambiando Handled a false. Esto puede ser necesario en determinadas áreas de eventos de entrada de controles, como el control clave de frente TextInput a donde los eventos de KeyDown entrada de bajo nivel y alto nivel compiten por el control, y cada uno intenta trabajar con una estrategia de enrutamiento diferente.

Se aplica a