ContentElement.AddHandler ContentElement.AddHandler ContentElement.AddHandler Method

Définition

Ajoute un gestionnaire d’événements routés pour un événement routé spécifié, en ajoutant le gestionnaire à la collection de gestionnaires sur l’élément actuel.Adds a routed event handler for a specified routed event, adding the handler to the handler collection on the current element.

Surcharges

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

Ajoute un gestionnaire d’événements routés pour un événement routé spécifié, en ajoutant le gestionnaire à la collection de gestionnaires sur l’élément actuel.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)

Ajoute un gestionnaire d’événements routés pour un événement routé spécifié, en ajoutant le gestionnaire à la collection de gestionnaires sur l’élément actuel.Adds a routed event handler for a specified routed event, adding the handler to the handler collection on the current element. Spécifiez handledEventsToo comme true pour que le gestionnaire fourni soit appelé pour un événement routé qui a déjà été marqué comme géré par un autre élément le long de son itinéraire.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)

Ajoute un gestionnaire d’événements routés pour un événement routé spécifié, en ajoutant le gestionnaire à la collection de gestionnaires sur l’élément actuel.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

Paramètres

routedEvent
RoutedEvent RoutedEvent RoutedEvent

Identificateur de l’événement routé à gérer.An identifier for the routed event to be handled.

handler
Delegate Delegate Delegate

Référence à l’implémentation du gestionnaire.A reference to the handler implementation.

Implémente

Remarques

Vous pouvez ajouter le même gestionnaire pour le même événement plusieurs fois sans lever d’exception.You can add the same handler for the same event multiple times without raising an exception. Toutefois, le gestionnaire est appelé en fait plusieurs fois lorsque l’événement est géré.However, the handler is actually invoked multiple times when the event is handled. Par conséquent, envisagez comment ce comportement peut avoir des effets secondaires qui doivent être comptabilisés dans votre implémentation de gestionnaire.Therefore, consider how this behavior might have side effects that should be accounted for in your handler implementation.

Vous utilisez généralement cette méthode pour fournir l’implémentation de l’accesseur « Ajouter » pour le Microsoft .NETMicrosoft .NET modèle d’accès aux événements d’un événement routé personnalisé.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)

Ajoute un gestionnaire d’événements routés pour un événement routé spécifié, en ajoutant le gestionnaire à la collection de gestionnaires sur l’élément actuel.Adds a routed event handler for a specified routed event, adding the handler to the handler collection on the current element. Spécifiez handledEventsToo comme true pour que le gestionnaire fourni soit appelé pour un événement routé qui a déjà été marqué comme géré par un autre élément le long de son itinéraire.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

Paramètres

routedEvent
RoutedEvent RoutedEvent RoutedEvent

Identificateur de l’événement routé à gérer.An identifier for the.routed event to be handled.

handler
Delegate Delegate Delegate

Référence à l’implémentation du gestionnaire.A reference to the handler implementation.

handledEventsToo
Boolean Boolean Boolean

true pour inscrire le gestionnaire pour qu’il soit appelé même quand l’événement routé est marqué comme géré dans ses données d’événement ; false pour inscrire le gestionnaire avec la condition par défaut selon laquelle il ne sera pas appelé si l’événement routé est déjà marqué comme géré.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.

La valeur par défaut est false.The default is false.

Ne demandez pas régulièrement à regérer un événement routé.Do not routinely ask to rehandle a routed event.

Exemples

L’exemple suivant implémente un gestionnaire appelé sur le Initialized événement sur une page qui attache un gestionnaire défini à un des éléments nommés de la page à l’aide 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. Ce gestionnaire est appelé même si un autre élément sur l’itinéraire marqué les données d’événement partagé comme étant géré avant d’atteindre l’élément de gestion dans l’itinéraire.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

Remarques

Traitement des événements d’entrée de bas niveau d’une façon pratique est une tâche complexe.Processing low-level input events in a practical way is a complex task. De nombreux contrôles implémentent le comportement où un certain événement est marqué comme géré et est remplacé par un autre événement plus intuitif.Many controls implement behavior where a certain event is marked as handled, and is replaced by another more intuitive event. En règle générale, un contrôle marque un événement d’entrée de plateforme comme géré s’il existe certaines intention de conception pour effectuer cette opération.Generally, a control will only mark a platform input event as handled if there is some design intention for doing so. Dans certains scénarios, ces intentions de conception peut-être pas ce que requiert votre gestion de l’événement d’entrée spécifique.In certain scenarios, those design intentions might not be what your particular handling of the input event requires. Pour ces scénarios, il est que l’inscription gestionnaires avec handledEventsToo comme true est appropriée.It is for these scenarios that registering handlers with handledEventsToo as true is appropriate. Mais vous ne devez pas le faire régulièrement.But you should not do this routinely. Appeler des gestionnaires en réponse à tous les événements même si gérée contribuera à compliquer votre propre logique de traitement des événements application.Invoking handlers in response to all events even if handled will complicate your own application event processing logic. Vous pouvez voir une baisse des performances si la logique du gestionnaire est importante.You may see a decrease in performance if the handler logic is substantial. Vous devez réserver l’utilisation de gestionnaires pour les événements déjà gérés pour les situations où vous avez déjà découverts pendant le processus de développement que certains contrôles gèrent des événements que vous souhaitez toujours gérer avec la logique d’application.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.

Une autre technique pour éviter la comportement de certaines combinaisons de contrôle de l’événement de gestion de classe consiste à utiliser alternative la version préliminaire de l’événement.Another technique for avoiding the class handling behavior of certain event-control combinations is to use that event's preview alternative. Par exemple, si MouseLeftButtonDown est marqué comme géré par la gestion de classe, vous pourrez ajouter des gestionnaires pour PreviewMouseLeftButtonDown à la place.For example, if MouseLeftButtonDown is marked handled by class handling, you might be able to add handlers for PreviewMouseLeftButtonDown instead.

Vous pouvez ajouter le même gestionnaire pour le même événement plusieurs fois sans lever d’exception.You can add the same handler for the same event multiple times without raising an exception. Toutefois, le gestionnaire est appelé en fait plusieurs fois lorsque l’événement est géré.However, the handler is actually invoked multiple times when the event is handled. Par conséquent, envisagez comment ce comportement peut avoir des effets secondaires qui doivent être comptabilisés dans votre implémentation de gestionnaire.Therefore, consider how this behavior might have side effects that should be accounted for in your handler implementation.

Vous utilisez généralement cette méthode pour fournir l’implémentation de l’accesseur « Ajouter » pour le Microsoft .NETMicrosoft .NET modèle d’accès aux événements d’un événement routé personnalisé.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.

S’applique à