ContentElement.AddHandler Méthode

Définition

Ajoute un gestionnaire d’événements routé pour un événement routé spécifié, en ajoutant le gestionnaire à la collection de gestionnaires sur l’élément actuel.

Surcharges

AddHandler(RoutedEvent, Delegate)

Ajoute un gestionnaire d’événements routé pour un événement routé spécifié, en ajoutant le gestionnaire à la collection de gestionnaires sur l’élément actuel.

AddHandler(RoutedEvent, Delegate, Boolean)

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

AddHandler(RoutedEvent, Delegate)

Ajoute un gestionnaire d’événements routé pour un événement routé spécifié, en ajoutant le gestionnaire à la collection de gestionnaires sur l’élément actuel.

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)

Paramètres

routedEvent
RoutedEvent

Identificateur de l’événement routé à gérer.

handler
Delegate

Référence à l’implémentation du gestionnaire.

Implémente

Remarques

Vous pouvez ajouter le même gestionnaire pour le même événement plusieurs fois sans déclencher d’exception. Toutefois, le gestionnaire est appelé plusieurs fois lorsque l’événement est géré. Par conséquent, réfléchissez à la façon dont ce comportement peut avoir des effets secondaires qui doivent être pris en compte dans votre implémentation de gestionnaire.

Vous utilisez généralement cette méthode pour fournir l’implémentation de l’accesseur « ajouter » pour le modèle d’accès aux événements Microsoft .NET d’un événement routé personnalisé.

S’applique à

AddHandler(RoutedEvent, Delegate, Boolean)

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

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)

Paramètres

routedEvent
RoutedEvent

Identificateur de l’événement routé à gérer.

handler
Delegate

Référence à l’implémentation du gestionnaire.

handledEventsToo
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é.

La valeur par défaut est false.

Ne demandez pas régulièrement à regérer un événement routé.

Exemples

L’exemple suivant implémente un gestionnaire appelé sur l’événement Initialized d’une page qui joint un gestionnaire défini à l’un des éléments nommés de la page à l’aide handledEventsTootruede . Ce gestionnaire est appelé même si un autre élément le long de l’itinéraire a marqué les données d’événement partagé comme gérées avant d’atteindre l’élément de gestion dans l’itinéraire.

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

Le traitement pratique des événements d’entrée de bas niveau est une tâche complexe. De nombreux contrôles implémentent un comportement où un événement est marqué comme géré et est remplacé par un autre événement plus intuitif. En règle générale, un contrôle marque un événement d’entrée de plateforme comme étant géré uniquement s’il existe une intention de conception de le faire. Dans certains scénarios, ces intentions de conception peuvent ne pas être celles requises par votre gestion particulière de l’événement d’entrée. C’est pour ces scénarios que l’inscription des gestionnaires avec handledEventsTootrue le cas échéant. Mais vous ne devriez pas le faire régulièrement. L’appel de gestionnaires en réponse à tous les événements, même s’ils sont gérés, complique votre propre logique de traitement des événements d’application. Vous pouvez constater une baisse des performances si la logique du gestionnaire est importante. Vous devez réserver l’utilisation de gestionnaires d’attachement pour les événements déjà gérés dans les situations où vous avez déjà découvert 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.

Une autre technique permettant d’éviter le comportement de gestion de classe de certaines combinaisons de contrôle d’événement consiste à utiliser l’alternative en préversion de cet événement. Par exemple, si MouseLeftButtonDown est marqué comme géré par la gestion de classe, vous pouvez peut-être ajouter des gestionnaires pour PreviewMouseLeftButtonDown à la place.

Vous pouvez ajouter le même gestionnaire pour le même événement plusieurs fois sans déclencher d’exception. Toutefois, le gestionnaire est appelé plusieurs fois lorsque l’événement est géré. Par conséquent, réfléchissez à la façon dont ce comportement peut avoir des effets secondaires qui doivent être pris en compte dans votre implémentation de gestionnaire.

Vous utilisez généralement cette méthode pour fournir l’implémentation de l’accesseur « ajouter » pour le modèle d’accès aux événements Microsoft .NET d’un événement routé personnalisé.

S’applique à