Compartilhar via


RoutedEventArgs.Handled Propriedade

Definição

Obtém ou define um valor que indica o estado atual do tratamento de eventos para um evento roteado à medida que percorre a rota.

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 da propriedade

Se a configuração for definida como true se o evento deve ser marcado como manipulado; caso contrário, false. Se estiver lendo esse valor, true indicará que um manipulador de classe ou algum manipulador de instância ao longo da rota já marcou esse evento manipulado. false.indica que nenhum manipulador desse tipo marcou o evento manipulado.

O valor padrão é false.

Atributos

Exemplos

O exemplo a seguir implementa um manipulador de eventos que marca o evento manipulado.

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

Comentários

Marcar o evento manipulado limitará a visibilidade do evento roteado aos ouvintes ao longo da rota do evento. O evento ainda percorre o restante da rota, mas somente manipuladores adicionados especificamente com HandledEventsTootrue na chamada do método AddHandler(RoutedEvent, Delegate, Boolean) serão invocados em resposta. Manipuladores padrão em ouvintes de instância (como aqueles expressos em XAML (Linguagem de Marcação de Aplicativo Extensível)) não serão invocados. O tratamento de eventos marcados como manipulados não é um cenário comum.

Se você for um autor de controle definindo seus próprios eventos, as decisões tomadas em relação ao tratamento de eventos no nível da classe afetarão os usuários do seu controle, bem como quaisquer usuários de controles derivados e, potencialmente, outros elementos contidos no controle ou que contenham seu controle. Para obter mais informações, consulte marcando eventos roteado como manipulados ede tratamento de classe.

Em circunstâncias muito raras, é apropriado lidar com eventos em que Handled está marcado truee modificar os argumentos do evento alterando Handled para false. Isso pode ser necessário em determinadas áreas de eventos de entrada de controles, como manipulação de chave de KeyDown versus TextInput em que eventos de entrada de nível baixo e alto competem pela manipulação e cada um está tentando trabalhar com uma estratégia de roteamento diferente.

Aplica-se a