RoutedEventArgs.Handled Propriedade

Definição

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.Gets or sets a value that indicates the present state of the event handling for a routed event as it travels the route.

public:
 property bool Handled { bool get(); void set(bool value); };
public bool Handled { get; set; }
[get: System.Security.SecurityCritical]
[set: System.Security.SecurityCritical]
public bool Handled { 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.If setting, set to true if the event is to be marked handled; otherwise 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.If reading this value, true indicates that either a class handler, or some instance handler along the route, has already marked this event handled. false.indica que nenhum manipulador marcou o evento como manipulado.false.indicates that no such handler has marked the event handled.

O valor padrão é false.The default value is false.

Atributos

Exemplos

O exemplo a seguir implementa um manipulador de eventos que marca o evento manipulado.The following example implements an event handler that marks the event handled.

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 de eventos.Marking the event handled will limit the visibility of the routed event to listeners along the event route. O evento ainda viaja para o restante da rota, mas somente os manipuladores adicionados especificamente com HandledEventsToo true na chamada do método AddHandler(RoutedEvent, Delegate, Boolean) serão invocados em resposta.The event does still travel the remainder of the route, but only handlers specifically added with HandledEventsToo true in the AddHandler(RoutedEvent, Delegate, Boolean) method call will be invoked in response. Os manipuladores padrão em ouvintes de instância (como os expressos no XAML (linguagem XAML)Extensible Application Markup Language (XAML)) não serão invocados.Default handlers on instance listeners (such as those expressed in XAML (linguagem XAML)Extensible Application Markup Language (XAML)) will not be invoked. Manipular eventos marcados como manipulados não é um cenário comum.Handling events that are marked handled is not a common scenario.

Se você for um autor de controle definindo seus próprios eventos, as decisões tomadas em relação à manipulação de eventos no nível de classe afetarão os usuários do seu controle, bem como os usuários de controles derivados e, potencialmente, outros elementos que estão contidos pelo seu controle ou que contêm seu controle.If you are a control author defining your own events, the decisions you make regarding event handling at the class level will impact users of your control as well as any users of derived controls, and potentially other elements that are either contained by your control or that contain your control. Para obter mais informações, consulte Marcar eventos roteados como manipulados e manipulação de classe.For more information, see Marking Routed Events as Handled, and Class Handling.

Em circunstâncias muito raras, é apropriado manipular eventos em que Handled está marcado truee modificar os argumentos do evento alterando Handled para false.In very rare circumstances it is appropriate to handle events where Handled is marked true, and modify the event arguments by changing Handled to false. Isso pode ser necessário em determinadas áreas de eventos de entrada de controles, como o tratamento de chaves de KeyDown em vez de TextInput onde os eventos de entrada de nível baixo e de alto nível são concorrentes para o manuseio, e cada um está tentando trabalhar com uma estratégia de roteamento diferente.This can be necessary in certain areas of input events of controls, such as key handling of KeyDown versus TextInput where low level and high level input events compete for the handling, and each is attempting to work with a different routing strategy.

Aplica-se a