RoutedEventArgs.Handled Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.