RoutedEventArgs.Handled Proprietà

Definizione

Ottiene o imposta un valore che indica lo stato presente della gestione degli eventi per un evento indirizzato quando percorre la 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à

In caso di impostazione di questo valore, impostarlo su true se l'evento deve essere contrassegnato come gestito. In caso contrario, false. In caso di lettura di questo valore, true indica che un gestore di classi o alcuni gestori di istanze lungo la route hanno già contrassegnato questo evento come gestito. false.indica che nessun gestore di questo tipo ha contrassegnato l'evento come 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

Contrassegnando l'evento gestito, la visibilità dell'evento indirizzato verrà limitata ai listener lungo la route dell'evento. L'evento continua a spostarsi nel resto della route, ma solo i gestori aggiunti in modo specifico con HandledEventsTootrue nella chiamata al AddHandler(RoutedEvent, Delegate, Boolean) metodo verranno richiamati in risposta. I gestori predefiniti nei listener di 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 e su tutti gli utenti di controlli derivati e potenzialmente su altri elementi contenuti nel controllo o che contengono il controllo. Per altre informazioni, vedere Contrassegno degli eventi indirizzati come gestiti e 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 rispetto alla posizione in cui gli eventi di KeyDownTextInput 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