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 HandledEventsToo
true
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 true
e 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.