Développer Réduire

UIElement.AddHandler Method

Ajoute un gestionnaire pour un événement routé spécifié, en ajoutant le gestionnaire à la collection de gestionnaires sur l'élément actuel. Affectez la valeur TRUE pour handledEventsToo afin que le gestionnaire fourni soit appelé pour un cas d'événement routé déjà marqué comme géré par un autre élément sur l'itinéraire d'événement.

Syntaxe


public void AddHandler(
  RoutedEvent routedEvent, 
  object handler, 
  bool handledEventsToo
)

Paramètres

routedEvent

Type: RoutedEvent

Identificateur pour l'événement routé à gérer.

handler

Type: System.Object [.NET] | Platform::Object [C++]

Référence à l'implémentation de gestionnaire.

handledEventsToo

Type: System.Boolean [.NET] | Platform::Boolean [C++]

true pour inscrire le gestionnaire de sorte qu'il soit appelé même lorsque l'événement routé est marqué comme géré dans les données d'événement.

false pour enregistrer le gestionnaire avec la condition par défaut précisant qu'il ne sera pas appelé si l'événement routé est déjà marqué comme traité. La valeur par défaut est false.

Ne demandez pas de manière répétée le retraitement d'un événement routé, car il interfère avec la création prévue du système d'événements Windows Runtime pour la composition de contrôle. Pour plus d'informations, consultez la section Notes.

Remarques

Identificateurs d'événement routé

L'identificateur d'événement routé est généralement un membre de propriété statique d'UIElement. Par exemple, pour ajouter un gestionnaire pour l'événement KeyUp, exécutez KeyUpEvent pour ce paramètre. Seul un nombre limité d'événements Windows Runtime possède cet identificateur ; seuls les événements routés sur UIElement possèdent une API d'identificateur disponible pour cette utilisation. En général, ce sont des événements liés aux actions d'entrée à différents niveaux : niveau pointeur, niveau mouvement, niveau manipulation.

Il s'agit d'une liste d'événements routés qui exposent un identificateur d'événement routé, et peut donc être traitée par les gestionnaires ajoutés via AddHandler :

Paramètre handler

Le paramètre handler est un paramètre non typé, mais il est courant de baser le gestionnaire sur un délégué qui est spécifique à l'événement voulu. Par exemple, si vous manipulez un événement KeyUp, passez une référence à une méthode basé sur le délégué KeyEventHandler.

Quand utiliser handledEventsToo

Le traitement pratique des événements d'entrée de niveau inférieur constitue une tâche complexe. De nombreux contrôles implémentent un comportement mettant en œuvre un événement donné marqué comme étant géré qui est remplacé par un autre événement plus intuitif. En général, un contrôle marque un événement routé comme étant géré uniquement si la conception impose de le faire. Toutefois, dans certains scénarios, ces intentions de conception peuvent ne pas correspondre aux besoins particuliers de votre gestion de l'événement d'entrée. C'est dans ces scénarios que l'enregistrement des gestionnaires en attribuant à handledEventsToo la valeur true est opportun. Toutefois, vous ne devez pas procéder ainsi de façon régulière. L'appel des gestionnaires en réponse à tous les événements, même s'ils sont gérés, complique la logique de traitement des événements de votre application. Il se peut que vous assistiez à une baisse des performances si la logique du gestionnaire est particulièrement longue. Vous devez joindre les gestionnaires aux événements déjà gérés uniquement si vous avez découvert que certains contrôles gèrent les événements que vous voulez gérer avec la logique d'application.

Une autre technique pour éviter le comportement de gestion de classe d'un contrôle consiste à sous-classer ce contrôle et de substituer ses méthodes On*, qui sont des substitutions préconfigurées par lesquelles le contrôle marque l'événement comme étant géré. Toutefois, cela peut également être complexe. Vous devrez peut-être reproduire l'implémentation de la gestion d'un contrôle sans appeler l'implémentation de base, car l'implémentation de base marquerait l'événement comme géré. Pour plus d'informations, consultez Vue d'ensemble des événements et des événements routés.

Exemples

Cet exemple montre la syntaxe de base à utiliser pour installer un gestionnaire d'événements avec AddHandler et handledEventsToo définies sur true. Dans ce cas, l'événement connecté est Tapped. L'emplacement standard pour utiliser des gestionnaires est Loaded pour une page ou OnApplyTemplate pour un contrôle basé sur un modèle.


        private void pageRoot_Tapped(object sender, TappedRoutedEventArgs e)
        {
            //implementation
        }
        private void pageRoot_Loaded_1(object sender, RoutedEventArgs e)
        {
            this.AddHandler(UIElement.TappedEvent, new TappedEventHandler(pageRoot_Tapped), true);
        }


Configuration requise

Client minimal pris en charge

Windows 8

Serveur minimal pris en charge

Windows Server 2012

Espace de noms

Windows.UI.Xaml
Windows::UI::Xaml [C++]

Métadonnées

Windows.winmd

Voir aussi

UIElement
RemoveHandler
Vue d'ensemble des événements et des événements routés
Démarrage rapide : entrée tactile

 

 

Afficher:
© 2014 Microsoft