UIElement.AddHandler Metodo
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.
Aggiunge un gestore eventi indirizzato per un evento indirizzato specificato, aggiungendo il gestore alla raccolta del gestore nell'elemento corrente.
Overload
AddHandler(RoutedEvent, Delegate) |
Aggiunge un gestore eventi indirizzato per un evento indirizzato specificato, aggiungendo il gestore alla raccolta del gestore nell'elemento corrente. |
AddHandler(RoutedEvent, Delegate, Boolean) |
Aggiunge un gestore eventi indirizzato per un evento indirizzato specificato, aggiungendo il gestore alla raccolta del gestore nell'elemento corrente. Specificare |
AddHandler(RoutedEvent, Delegate)
Aggiunge un gestore eventi indirizzato per un evento indirizzato specificato, aggiungendo il gestore alla raccolta del gestore nell'elemento corrente.
public:
virtual void AddHandler(System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler);
public void AddHandler (System.Windows.RoutedEvent routedEvent, Delegate handler);
abstract member AddHandler : System.Windows.RoutedEvent * Delegate -> unit
override this.AddHandler : System.Windows.RoutedEvent * Delegate -> unit
Public Sub AddHandler (routedEvent As RoutedEvent, handler As Delegate)
Parametri
- routedEvent
- RoutedEvent
Identificatore dell'evento indirizzato da gestire.
- handler
- Delegate
Riferimento all'implementazione del gestore.
Implementazioni
Commenti
È possibile aggiungere lo stesso gestore per lo stesso evento più volte senza generare un'eccezione. Tuttavia, il gestore viene effettivamente richiamato più volte quando l'evento viene gestito. Di conseguenza, considerare come questo comportamento potrebbe avere effetti collaterali che devono essere considerati nell'implementazione del gestore.
Questo metodo viene in genere usato per fornire l'implementazione della funzione di accesso "add" per il modello di accesso agli eventi Microsoft .NET di un evento indirizzato personalizzato.
Si applica a
AddHandler(RoutedEvent, Delegate, Boolean)
Aggiunge un gestore eventi indirizzato per un evento indirizzato specificato, aggiungendo il gestore alla raccolta del gestore nell'elemento corrente. Specificare handledEventsToo
come true
affinché il gestore fornito venga richiamato per l'evento indirizzato che era già stato contrassegnato come gestito da un altro elemento lungo la route dell'evento.
public:
void AddHandler(System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler, bool handledEventsToo);
public void AddHandler (System.Windows.RoutedEvent routedEvent, Delegate handler, bool handledEventsToo);
member this.AddHandler : System.Windows.RoutedEvent * Delegate * bool -> unit
Public Sub AddHandler (routedEvent As RoutedEvent, handler As Delegate, handledEventsToo As Boolean)
Parametri
- routedEvent
- RoutedEvent
Identificatore dell'evento indirizzato da gestire.
- handler
- Delegate
Riferimento all'implementazione del gestore.
- handledEventsToo
- Boolean
true
di registrare il gestore in modo che venga richiamato anche quando l'evento indirizzato viene contrassegnato come gestito nei dati dell'evento; false
registrare il gestore con la condizione predefinita che non verrà richiamata se l'evento indirizzato è già contrassegnato come gestito.
Il valore predefinito è false
.
Non chiedere di rielaborare un evento indirizzato.
Esempio
Nell'esempio seguente viene implementato un gestore richiamato nell'evento Initialized in una pagina che collega un gestore definito a uno degli elementi denominati nella pagina usando handledEventsToo
true
. Questo gestore viene richiamato anche se un altro elemento lungo la route ha contrassegnato i dati dell'evento condiviso come gestiti prima di raggiungere l'elemento di gestione nella route.
void PrimeHandledToo(object sender, EventArgs e)
{
dpanel2.AddHandler(Button.ClickEvent, new RoutedEventHandler(GetHandledToo), true);
}
Private Sub PrimeHandledToo(ByVal sender As Object, ByVal e As EventArgs)
dpanel2.AddHandler(Button.ClickEvent, New RoutedEventHandler(AddressOf GetHandledToo), True)
End Sub
Commenti
L'elaborazione di eventi di input di basso livello in modo pratico è un'attività complessa. Molti controlli implementano il comportamento in cui 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 della piattaforma come gestito se è prevista una qualche intenzione di progettazione per farlo. In alcuni scenari, queste intenzioni di progettazione potrebbero non essere quelle richieste dalla gestione particolare dell'evento di input. Si tratta di questi scenari che registrano i gestori con handledEventsToo
come true
è appropriato. Ma non dovresti farlo regolarmente. Richiamare i gestori in risposta a tutti gli eventi anche se gestiti complica la logica di elaborazione degli eventi dell'applicazione. È possibile che si verifichi una diminuzione delle prestazioni se la logica del gestore è sostanziale. È consigliabile riservare l'uso dei gestori di collegamento per gli eventi già gestiti per situazioni in cui sono già stati individuati durante il processo di sviluppo che determinati controlli gestiscono eventi che si vogliono comunque gestire con la logica dell'applicazione.
Un'altra tecnica per evitare il comportamento di gestione delle classi di determinate combinazioni di controllo eventi consiste nell'usare l'alternativa di anteprima dell'evento. Ad esempio, se MouseLeftButtonDown è contrassegnato come gestito dalla gestione delle classi, potrebbe essere possibile aggiungere gestori per PreviewMouseLeftButtonDown.
È possibile aggiungere lo stesso gestore per lo stesso evento più volte senza generare un'eccezione. Tuttavia, il gestore viene effettivamente richiamato più volte quando l'evento viene gestito. Di conseguenza, considerare come questo comportamento potrebbe avere effetti collaterali che devono essere considerati nell'implementazione del gestore.
Questo metodo viene in genere usato per fornire l'implementazione della funzione di accesso "add" per il modello di accesso agli eventi Microsoft .NET di un evento indirizzato personalizzato.