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 de manipulação de eventos para um evento roteado enquanto ele trafega na 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 for configurar, defina como true
se o evento deve ser marcado como tratado; caso contrário false
. Se for ler esse valor, true
indica que um manipulador de classe ou algum manipulador de instância ao longo da rota já marcou este evento como manipulado. false
.indica que nenhum manipulador marcou o evento como 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 apenas manipuladores especificamente adicionados com HandledEventsToo
true
na chamada de AddHandler(RoutedEvent, Delegate, Boolean) método serão invocados em resposta. Manipuladores padrão em ouvintes de instância (como aqueles expressos em XAML (Extensible Application Markup Language)) 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 controle, bem como quaisquer usuários de controles derivados e, potencialmente, outros elementos contidos no controle ou que contenham o controle. Para obter mais informações, consulte Marcar eventos roteados como manipulados e manipulação de classe.
Em circunstâncias muito raras, é apropriado manipular eventos em Handled que está marcado true
como 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 versus TextInput onde eventos de entrada de KeyDown baixo nível e alto nível competem pela manipulação e cada um está tentando trabalhar com uma estratégia de roteamento diferente.
Aplica-se a
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de