RoutedEventArgs.Handled Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar eller anger ett värde som anger det aktuella tillståndet för händelsehanteringen för en dirigerad händelse när den färdas längs vägen.
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
Egenskapsvärde
Om inställningen anges till true om händelsen ska markeras som hanterad, annars false. Om du läser det här värdet true anger du att antingen en klasshanterare eller någon instanshanterare längs vägen redan har markerat den här händelsen som hanterad.
false.anger att ingen sådan hanterare har markerat den hanterade händelsen.
Standardvärdet är false.
- Attribut
Exempel
I följande exempel implementeras en händelsehanterare som markerar händelsen som hanteras.
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
Kommentarer
Om du markerar händelsen som hanteras begränsas synligheten för den dirigerade händelsen till lyssnare längs händelsevägen. Händelsen färdas fortfarande resten av vägen, men endast hanterare som specifikt läggs till i HandledEventsTootrue metodanropet AddHandler(RoutedEvent, Delegate, Boolean) anropas som svar. Standardhanterare för instanslyssnare (till exempel de som uttrycks i XAML (Extensible Application Markup Language) anropas inte. Att hantera händelser som har markerats som hanterade är inte ett vanligt scenario.
Om du är en kontrollförfattare som definierar dina egna händelser kommer de beslut du fattar om händelsehantering på klassnivå att påverka användarna av din kontroll samt alla användare av härledda kontroller och potentiellt andra element som antingen finns i din kontroll eller som innehåller din kontroll. Mer information finns i Markera routade händelser som hanterade och klasshantering.
I mycket sällsynta fall är det lämpligt att hantera händelser där Handled har markerats trueoch ändra händelseargumenten genom att ändra Handled till false. Detta kan vara nödvändigt inom vissa områden av indatahändelser för kontroller, till exempel nyckelhantering av KeyDown kontra TextInput där indatahändelser på låg nivå och hög nivå konkurrerar om hanteringen, och var och en försöker arbeta med en annan routningsstrategi.