RoutedEventArgs.Handled Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Dient zum Abrufen oder Festlegen eines Werts, der den aktuellen Zustand der Ereignisbehandlung für ein routingfähiges Ereignis angibt, während sie die Route durchfährt.
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
Bei Festlegung auf true
, wenn das Ereignis als handled gekennzeichnet werden soll; andernfalls false
. Wenn dieser Wert gelesen wird, gibt true
an, dass entweder ein Klassenhandler oder ein Instanzhandler entlang der Route bereits dieses Ereignis behandelt hat.
false
.indicates that no such handler has marked the event handled.
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
Wenn Sie das behandelte Ereignis markieren, wird die Sichtbarkeit des routingierten Ereignisses auf Listener entlang der Ereignisroute beschränkt. Das Ereignis fährt weiterhin den Rest der Route, aber nur Handler, die speziell mit HandledEventsToo
true
im AddHandler(RoutedEvent, Delegate, Boolean) Methodenaufruf hinzugefügt wurden, werden als Antwort aufgerufen. Standardhandler für Instanzlistener (z. B. die in Extensible Application Markup Language (XAML)) ausgedrückt 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 hinsichtlich der Ereignisbehandlung auf Klassenebene treffen, auf Benutzer Ihres Steuerelements sowie auf alle Benutzer abgeleiteter Steuerelemente und potenziell andere Elemente aus, die entweder in Ihrem Steuerelement enthalten sind oder das Steuerelement enthalten. Weitere Informationen finden Sie unter Markieren von Routingereignissen als behandelt und klassenhandhabung.
Unter sehr seltenen Umständen ist es sinnvoll, Ereignisse zu behandeln, bei denen Handledtrue
markiert ist, und die Ereignisargumente durch Ändern Handled in false
ändern. Dies kann in bestimmten Bereichen von Eingabeereignissen von Steuerelementen erforderlich sein, z. B. die Tastenbehandlung von KeyDown im Vergleich zu TextInput, bei denen niedrige und allgemeine Eingabeereignisse für die Behandlung konkurrieren, und jedes versucht, mit einer anderen Routingstrategie zu arbeiten.