ContentElement.AddHandler ContentElement.AddHandler ContentElement.AddHandler Method

Definizione

Aggiunge un gestore eventi indirizzati per un evento indirizzato specifico, aggiungendo il gestore alla raccolta di gestori nell'elemento corrente.Adds a routed event handler for a specified routed event, adding the handler to the handler collection on the current element.

Overload

AddHandler(RoutedEvent, Delegate) AddHandler(RoutedEvent, Delegate) AddHandler(RoutedEvent, Delegate)

Aggiunge un gestore eventi indirizzati per un evento indirizzato specifico, aggiungendo il gestore alla raccolta di gestori nell'elemento corrente.Adds a routed event handler for a specified routed event, adding the handler to the handler collection on the current element.

AddHandler(RoutedEvent, Delegate, Boolean) AddHandler(RoutedEvent, Delegate, Boolean) AddHandler(RoutedEvent, Delegate, Boolean)

Aggiunge un gestore eventi indirizzati per un evento indirizzato specifico, aggiungendo il gestore alla raccolta di gestori nell'elemento corrente.Adds a routed event handler for a specified routed event, adding the handler to the handler collection on the current element. Specificare handledEventsToo come true per fare in modo che il gestore fornito venga richiamato per un evento indirizzato che è già stato contrassegnato come gestito da un altro elemento lungo la route.Specify handledEventsToo as true to have the provided handler be invoked for routed event that had already been marked as handled by another element along the event route.

AddHandler(RoutedEvent, Delegate) AddHandler(RoutedEvent, Delegate) AddHandler(RoutedEvent, Delegate)

Aggiunge un gestore eventi indirizzati per un evento indirizzato specifico, aggiungendo il gestore alla raccolta di gestori nell'elemento corrente.Adds a routed event handler for a specified routed event, adding the handler to the handler collection on the current element.

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

Parametri

routedEvent
RoutedEvent RoutedEvent RoutedEvent

Identificatore dell'evento indirizzato da gestire.An identifier for the routed event to be handled.

handler
Delegate Delegate Delegate

Riferimento all'implementazione del gestore.A reference to the handler implementation.

Implementazioni

Commenti

È possibile aggiungere più volte lo stesso gestore per lo stesso evento senza generare un'eccezione.You can add the same handler for the same event multiple times without raising an exception. Tuttavia, il gestore viene effettivamente richiamato più volte quando l'evento viene gestito.However, the handler is actually invoked multiple times when the event is handled. Considerare pertanto il modo in cui questo comportamento potrebbe avere effetti collaterali che devono essere considerati nell'implementazione del gestore.Therefore, consider how this behavior might have side effects that should be accounted for in your handler implementation.

Questo metodo viene in genere usato per fornire l'implementazione della funzione di accesso "Add" Microsoft .NETMicrosoft .NET per il modello di accesso agli eventi di un evento indirizzato personalizzato.You typically use this method to provide the implementation of the "add" accessor for the Microsoft .NETMicrosoft .NET event access pattern of a custom routed event.

AddHandler(RoutedEvent, Delegate, Boolean) AddHandler(RoutedEvent, Delegate, Boolean) AddHandler(RoutedEvent, Delegate, Boolean)

Aggiunge un gestore eventi indirizzati per un evento indirizzato specifico, aggiungendo il gestore alla raccolta di gestori nell'elemento corrente.Adds a routed event handler for a specified routed event, adding the handler to the handler collection on the current element. Specificare handledEventsToo come true per fare in modo che il gestore fornito venga richiamato per un evento indirizzato che è già stato contrassegnato come gestito da un altro elemento lungo la route.Specify handledEventsToo as true to have the provided handler be invoked for routed event that had already been marked as handled by another element along the event route.

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

Parametri

routedEvent
RoutedEvent RoutedEvent RoutedEvent

Identificatore per l'evento indirizzato da gestire.An identifier for the.routed event to be handled.

handler
Delegate Delegate Delegate

Riferimento all'implementazione del gestore.A reference to the handler implementation.

handledEventsToo
Boolean Boolean 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.true to register the handler such that it is invoked even when the routed event is marked handled in its event data; false to register the handler with the default condition that it will not be invoked if the routed event is already marked handled.

Il valore predefinito è false.The default is false.

Non chiedere ripetutamente di gestire di nuovo un evento indirizzato.Do not routinely ask to rehandle a routed event.

Esempi

Nell'esempio seguente viene implementato un gestore richiamato Initialized sull'evento in una pagina che connette un gestore definito a uno degli elementi denominati nella pagina utilizzando handledEventsToo true.The following example implements a handler invoked on the Initialized event on a page that attaches a defined handler to one of the named elements on the page using handledEventsToo true. Questo gestore verrebbe richiamato anche se un altro elemento lungo la route contrassegnava i dati dell'evento condiviso come gestiti prima di raggiungere l'elemento di gestione nella route.This handler would be invoked even if another element along the route marked the shared event data as handled before reaching the handling element in the 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.Processing low-level input events in a practical way is a complex task. Molti controlli implementano il comportamento in cui un determinato evento viene contrassegnato come gestito e viene sostituito da un altro evento più intuitivo.Many controls implement behavior where a certain event is marked as handled, and is replaced by another more intuitive event. In genere, un controllo contrassegna un evento di input della piattaforma come gestito se è presente un'intenzione di progettazione.Generally, a control will only mark a platform input event as handled if there is some design intention for doing so. In alcuni scenari, le finalità di progettazione potrebbero non essere quelle richieste dalla gestione specifica dell'evento di input.In certain scenarios, those design intentions might not be what your particular handling of the input event requires. Per questi scenari la registrazione dei gestori con handledEventsToo true è appropriato.It is for these scenarios that registering handlers with handledEventsToo as true is appropriate. Questa operazione non deve essere eseguita regolarmente.But you should not do this routinely. Richiama i gestori in risposta a tutti gli eventi anche se gestiti complica la logica di elaborazione degli eventi dell'applicazione.Invoking handlers in response to all events even if handled will complicate your own application event processing logic. Se la logica del gestore è sostanziale, è possibile che si verifichi una riduzione delle prestazioni.You may see a decrease in performance if the handler logic is substantial. È consigliabile riservare l'utilizzo dei gestori di connessione per gli eventi già gestiti per le situazioni in cui è già stato individuato durante il processo di sviluppo che determinati controlli gestiscono gli eventi che si desidera gestire con la logica dell'applicazione.You should reserve the use of attaching handlers for already-handled events for situations where you have already discovered during the development process that certain controls are handling events that you still want to handle with application logic.

Un'altra tecnica per evitare il comportamento di gestione delle classi di determinate combinazioni di controlli eventi consiste nell'usare l'alternativa di anteprima dell'evento.Another technique for avoiding the class handling behavior of certain event-control combinations is to use that event's preview alternative. Se MouseLeftButtonDown , ad esempio, è contrassegnato come gestito dalla gestione delle classi, potrebbe essere possibile aggiungere gestori per PreviewMouseLeftButtonDown .For example, if MouseLeftButtonDown is marked handled by class handling, you might be able to add handlers for PreviewMouseLeftButtonDown instead.

È possibile aggiungere più volte lo stesso gestore per lo stesso evento senza generare un'eccezione.You can add the same handler for the same event multiple times without raising an exception. Tuttavia, il gestore viene effettivamente richiamato più volte quando l'evento viene gestito.However, the handler is actually invoked multiple times when the event is handled. Considerare pertanto il modo in cui questo comportamento potrebbe avere effetti collaterali che devono essere considerati nell'implementazione del gestore.Therefore, consider how this behavior might have side effects that should be accounted for in your handler implementation.

Questo metodo viene in genere usato per fornire l'implementazione della funzione di accesso "Add" Microsoft .NETMicrosoft .NET per il modello di accesso agli eventi di un evento indirizzato personalizzato.You typically use this method to provide the implementation of the "add" accessor for the Microsoft .NETMicrosoft .NET event access pattern of a custom routed event.

Si applica a