RoutedEventArgs.Handled Propiedad

Definición

Obtiene o establece un valor que indica el estado actual del control de eventos para un evento enrutado a medida que viaja por 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, establezca en true si el evento se va a marcar como controlado; de lo contrario, false. Si lee este valor, true indica que un controlador de clases o algún controlador de instancia a lo largo de la ruta ya ha marcado este evento controlado. false.indica que ningún controlador de este tipo ha marcado el evento 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 llamada al método AddHandler(RoutedEvent, Delegate, Boolean) en respuesta. Los controladores predeterminados en los agentes de escucha de instancia (como los expresados en lenguaje de marcado de aplicaciones extensibles (XAML)) no se invocarán. 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 obtener más información, vea marcar eventos enrutados como controlados y control de clases.

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

Se aplica a