Aggiornamento: novembre 2007
Aggiunge un gestore di eventi indirizzati per un evento indirizzato specifico, aggiungendo il gestore all'insieme di gestori sull'elemento corrente. Specificare che handledEventsToo è true per fare in modo che il gestore specificato venga richiamato per eventi indirizzati già contrassegnati come gestiti da un altro elemento lungo la route dell'evento.
Spazio dei nomi:
System.Windows Assembly:
PresentationCore (in PresentationCore.dll)
Visual Basic - (Dichiarazione)
Public Sub AddHandler ( _
routedEvent As RoutedEvent, _
handler As Delegate, _
handledEventsToo As Boolean _
)
Dim instance As UIElement
Dim routedEvent As RoutedEvent
Dim handler As [Delegate]
Dim handledEventsToo As Boolean
instance.AddHandler(routedEvent, handler, _
handledEventsToo)
public void AddHandler(
RoutedEvent routedEvent,
Delegate handler,
bool handledEventsToo
)
public:
void AddHandler(
RoutedEvent^ routedEvent,
Delegate^ handler,
bool handledEventsToo
)
public void AddHandler(
RoutedEvent routedEvent,
Delegate handler,
boolean handledEventsToo
)
public function AddHandler(
routedEvent : RoutedEvent,
handler : Delegate,
handledEventsToo : boolean
)
Non è possibile utilizzare metodi in XAML.
Parametri
- routedEvent
- Tipo: System.Windows..::.RoutedEvent
Identificatore dell'evento indirizzato da gestire.
- handler
- Tipo: System..::.Delegate
Riferimento all'implementazione del gestore.
- handledEventsToo
- Tipo: System..::.Boolean
true per registrare il gestore affinché venga richiamato anche quando l'evento indirizzato è contrassegnato come gestito nei dati dell'evento, false per registrare il gestore con la condizione predefinita in base alla quale non verrà richiamato se l'evento indirizzato è già contrassegnato come gestito.
Il valore predefinito è false.
Non chiedere continuamente di gestire di nuovo un evento indirizzato. Per ulteriori informazioni, vedere la sezione delle osservazioni.
L'elaborazione di eventi di input di basso livello in modo pratico è un'attività complessa. Molti controlli implementano un comportamento in base al quale un determinato evento viene contrassegnato come gestito e viene sostituito da un altro evento più intuitivo. In genere un controllo contrassegna un evento di input di piattaforma come gestito solo se tale operazione è prevista nella progettazione. In alcuni scenari è possibile che le modalità di progettazione non soddisfino le esigenze della specifica gestione dell'evento di input. In tali casi risulta appropriata la registrazione dei gestori con handledEventsToo impostato su true. È consigliabile, tuttavia, non eseguire regolarmente questa operazione. Se i gestori vengono richiamati in risposta a tutti gli eventi, anche quelli gestiti, la logica di elaborazione degli eventi dell'applicazione si complica. Se la logica del gestore assume proporzioni notevoli, è possibile notare una riduzione delle prestazioni. È opportuno riservare l'associazione dei gestori per gli eventi già gestiti alle situazioni in cui durante il processo di sviluppo sono stati individuati determinati controlli che gestiscono eventi che si desidera invece gestire con la logica dell'applicazione.
Un'altra tecnica per evitare il comportamento di gestione delle classi di alcune combinazioni evento-controllo consiste nell'utilizzare come alternativa l'anteprima dell'evento in questione. Se MouseLeftButtonDown, ad esempio, è contrassegnato come gestito dalla gestione delle classi, potrebbe essere invece possibile aggiungere gestori per PreviewMouseLeftButtonDown.
È possibile aggiungere lo stesso gestore per lo stesso evento più volte senza generare un'eccezione. Quando l'evento viene gestito, tuttavia, il gestore viene in realtà richiamato varie volte. Per l'implementazione del gestore è dunque opportuno prendere in considerazione gli eventuali effetti collaterali di questo comportamento.
In genere si utilizza questo metodo per fornire l'implementazione della funzione di accesso "add" relativa al modello di accesso all'evento di Microsoft .NET di un evento indirizzato personalizzato.
Nell'esempio seguente viene implementato un gestore richiamato nell'evento Initialized in una pagina che associa un gestore definito a uno degli elementi denominati nella pagina utilizzando handledEventsToo true. Questo gestore verrebbe richiamato anche se un altro elemento lungo la route contrassegnasse l'evento condiviso come gestito prima di raggiungere l'elemento di gestione nella route.
void PrimeHandledToo(object sender, EventArgs e)
{
dpanel2.AddHandler(Button.ClickEvent, new RoutedEventHandler(GetHandledToo), true);
}
Windows Vista
.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Informazioni sulla versione
.NET Framework
Supportato in: 3.5, 3.0
Riferimenti
Altre risorse