RoutedEventArgs.Handled Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Recebe ou define um valor que indica o estado atual do tratamento do evento para um evento encaminhado enquanto percorre a rota.
public:
property bool Handled { bool get(); void set(bool value); };
public bool Handled { [System.Security.SecurityCritical] get; [System.Security.SecurityCritical] set; }
[<get: System.Security.SecurityCritical>]
[<set: System.Security.SecurityCritical>]
member this.Handled : bool with get, set
Public Property Handled As Boolean
Valor de Propriedade
Se for definido, defina para true se o evento for marcado como tratado; caso contrário false. Se ler este valor, true indica que um gestor de classes ou algum gestor de instância ao longo da rota já marcou este evento como tratado.
false.indica que nenhum manipulador deste tipo marcou o evento tratado.
O valor predefinido é false.
- Atributos
Exemplos
O exemplo seguinte implementa um gestor de eventos que marca o evento tratado.
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
Observações
Marcar o evento tratado limitará a visibilidade do evento encaminhado para os ouvintes ao longo da rota do evento. O evento ainda percorre o restante da rota, mas apenas os handlers especificamente adicionados na HandledEventsTootrueAddHandler(RoutedEvent, Delegate, Boolean) chamada de método serão invocados em resposta. Os handlers padrão nos ouvintes de instância (como os expressos na Extensible Application Markup Language (XAML)) não serão invocados. Gerir eventos marcados como geridos não é um cenário comum.
Se for um autor de controlos a definir os seus próprios eventos, as decisões que tomar relativamente ao tratamento de eventos ao nível da classe afetarão os utilizadores do seu controlo, bem como quaisquer utilizadores de controlos derivados, e potencialmente outros elementos que estejam contidos pelo seu controlo ou que contenham o seu controlo. Para mais informações, consulte Marcação de Eventos Encaminhados como Tratados e Gestão de Classes.
Em circunstâncias muito raras, é apropriado tratar eventos onde Handled está marcado true, e modificar os argumentos do evento mudando Handled para false. Isto pode ser necessário em certas áreas de eventos de entrada dos controlos, como o manuseamento de chaves versus KeyDownTextInput onde eventos de entrada de baixo e alto nível competem pelo controlo, e cada um tenta trabalhar com uma estratégia de encaminhamento diferente.