RoutedEventArgs.Handled Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 HandledEventsToo
true
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 true
e 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.