RoutedEventArgs.Handled Proprietà

Definizione

Ottiene o imposta un valore che indica lo stato corrente della gestione degli eventi per un evento indirizzato durante il viaggio della route.

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

Valore della proprietà

Se l'impostazione è impostata su true se l'evento deve essere contrassegnato come gestito; in caso contrario, false. Se si legge questo valore, true indica che un gestore di classi o un gestore di istanze lungo la route ha già contrassegnato questo evento gestito. false.indica che nessun gestore di questo tipo ha contrassegnato l'evento gestito.

Il valore predefinito è false.

Attributi

Esempio

Nell'esempio seguente viene implementato un gestore eventi che contrassegna l'evento gestito.

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

Commenti

Se si contrassegna l'evento gestito, la visibilità dell'evento indirizzato verrà limitata ai listener lungo la route dell'evento. L'evento continua a spostarsi nella parte restante della route, ma solo i gestori aggiunti specificamente con HandledEventsTootrue nella chiamata al metodo AddHandler(RoutedEvent, Delegate, Boolean) verranno richiamati in risposta. I gestori predefiniti nei listener dell'istanza (ad esempio quelli espressi in XAML (Extensible Application Markup Language) non verranno richiamati. La gestione degli eventi contrassegnati come gestiti non è uno scenario comune.

Se si è un autore di controlli che definisce eventi personalizzati, le decisioni prese per quanto riguarda la gestione degli eventi a livello di classe influiranno sugli utenti del controllo, nonché su qualsiasi utente di controlli derivati e potenzialmente su altri elementi contenuti dal controllo o che contengono il controllo. Per altre informazioni, vedere contrassegnare gli eventi indirizzati come gestiti e la gestione delle classi.

In circostanze molto rare è opportuno gestire gli eventi in cui Handled è contrassegnato truee modificare gli argomenti dell'evento modificando Handled in false. Ciò può essere necessario in determinate aree di eventi di input dei controlli, ad esempio la gestione delle chiavi di KeyDown e TextInput in cui gli eventi di input di basso livello e di alto livello competono per la gestione e ognuno sta tentando di lavorare con una strategia di routing diversa.

Si applica a