RoutedEventArgs.Handled Eigenschaft

Definition

Ruft einen Wert ab, der den aktuellen Zustand der Ereignisbehandlung für ein Routingereignis beim Durchlaufen der Route angibt, oder legt diesen fest.

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

Eigenschaftswert

Wenn dieser Wert festgelegt wird, legen Sie ihn auf true fest, wenn das Ereignis als behandelt markiert werden soll, andernfalls auf false. Wenn dieser Wert gelesen wird, gibt true an, dass dieses Ereignis bereits von einem Klassenhandler oder einem Instanzhandler entlang der Route als behandelt markiert wurde. false gibt an, dass das Ereignis von keinem Handler als behandelt markiert wurde.

Der Standardwert ist false.

Attribute

Beispiele

Im folgenden Beispiel wird ein Ereignishandler implementiert, der das behandelte Ereignis kennzeichnet.

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

Hinweise

Das Markieren des behandelten Ereignisses schränkt die Sichtbarkeit des weitergeleiteten Ereignisses auf Listener entlang der Ereignisroute ein. Das -Ereignis bewegt weiterhin den Rest der Route, aber nur Handler, die AddHandler(RoutedEvent, Delegate, Boolean) speziell mit HandledEventsTootrue im Methodenaufruf hinzugefügt wurden, werden als Antwort aufgerufen. Standardhandler für instance Listener (z. B. die in Extensible Application Markup Language (XAML) ausgedrückten) werden nicht aufgerufen. Die Behandlung von Ereignissen, die als behandelt gekennzeichnet sind, ist kein gängiges Szenario.

Wenn Sie ein Steuerelementautor sind, der Ihre eigenen Ereignisse definiert, wirken sich die Entscheidungen, die Sie in Bezug auf die Ereignisbehandlung auf Klassenebene treffen, sowohl auf Benutzer Ihres Steuerelements als auch auf alle Benutzer abgeleiteter Steuerelemente und potenziell andere Elemente, die entweder in Ihrem Steuerelement enthalten sind oder das Steuerelement enthalten. Weitere Informationen finden Sie unter Markieren von Routingereignissen als behandelt und Klassenbehandlung.

In sehr seltenen Fällen empfiehlt es sich, Ereignisse zu behandeln, bei denen Handled markiert trueist, und die Ereignisargumente zu ändern, indem Sie in falseändernHandled. Dies kann in bestimmten Bereichen von Eingabeereignissen von Steuerelementen erforderlich sein, z. B. bei der Schlüsselbehandlung von Eingabeereignissen TextInput auf KeyDown niedriger und hoher Ebene, die für die Verarbeitung konkurrieren, und jeder versucht, mit einer anderen Routingstrategie zu arbeiten.

Gilt für: