UIElement.AddHandler Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.
Surcharges
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. |
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. Spécifiez |
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.
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 « add » 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és 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
d’appeler le gestionnaire fourni pour l’événement routé qui avait déjà été marqué comme géré par un autre élément le long de l’itinéraire d’événement.
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
d’inscrire le gestionnaire de sorte qu’il soit appelé même lorsque l’événement routé est marqué comme géré dans ses données d’événement ; false
d’inscrire le gestionnaire avec la condition par défaut qu’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 de réacheminer un événement routé.
Exemples
L’exemple suivant implémente un gestionnaire appelé sur l’événement Initialized sur une page qui attache un gestionnaire défini à l’un des éléments nommés de la page à l’aide de handledEventsToo
true
. 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ées 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 des événements d’entrée de bas niveau de manière pratique est une tâche complexe. De nombreux contrôles implémentent le comportement où un certain événement est marqué comme géré et remplacé par un autre événement plus intuitif. En règle générale, un contrôle marque uniquement un événement d’entrée de plateforme comme géré s’il existe une intention de conception pour le faire. Dans certains scénarios, ces intentions de conception peuvent ne pas être ce que votre gestion particulière de l’événement d’entrée nécessite. C’est pour ces scénarios que l’inscription de gestionnaires auprès de handledEventsToo
en tant que true
est appropriée. Mais vous ne devez pas le faire régulièrement. L’appel de gestionnaires en réponse à tous les événements, même si gérés compliquera votre propre logique de traitement des événements d’application. Vous pouvez voir une diminution des performances si la logique du gestionnaire est importante. Vous devez réserver l’utilisation des gestionnaires d’attachement pour les événements déjà gérés pour 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 des classes de certaines combinaisons de contrôles d’événements consiste à utiliser l’alternative d’aperçu de cet événement. Par exemple, si MouseLeftButtonDown est marquée comme gérée par la gestion des classes, vous pouvez 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 « add » pour le modèle d’accès aux événements Microsoft .NET d’un événement routé personnalisé.