UIElement.OnPreviewMouseDown(MouseButtonEventArgs) Méthode

Définition

Méthode appelée quand un événement routé attaché PreviewMouseDown non géré atteint un élément de son itinéraire qui est dérivé de cette classe. Implémentez cette méthode pour ajouter la gestion de classes pour cet événement.

protected:
 virtual void OnPreviewMouseDown(System::Windows::Input::MouseButtonEventArgs ^ e);
protected virtual void OnPreviewMouseDown (System.Windows.Input.MouseButtonEventArgs e);
abstract member OnPreviewMouseDown : System.Windows.Input.MouseButtonEventArgs -> unit
override this.OnPreviewMouseDown : System.Windows.Input.MouseButtonEventArgs -> unit
Protected Overridable Sub OnPreviewMouseDown (e As MouseButtonEventArgs)

Paramètres

e
MouseButtonEventArgs

MouseButtonEventArgs qui contient les données d'événement. Les données d’événement indiquent qu’un ou plusieurs boutons de la souris ont été enfoncés.

Remarques

Les actions de bouton de la souris sont également gérées par un gestionnaire d’entrées dédié. D’autres fonctionnalités de programmation qui s’appuient sur des actions de bouton de la souris, telles que les liaisons d’entrée et de commande, peuvent appeler des gestionnaires pour l’action avant qu’elle ne soit exposée en tant qu’action générale du bouton de la souris. Si ces fonctionnalités du système d’entrée marquent l’événement Mouse.PreviewMouseDown comme géré, OnPreviewMouseDown n’est pas appelé.

Si vous utilisez ce gestionnaire de classe pour marquer l’événement comme géré, vous avez potentiellement un impact sur les événements suivants : PreviewMouseLeftButtonDown et PreviewMouseRightButtonDown. L’un de ces événements peut être déclenché sur l’élément de réception quand Mouse.PreviewMouseDown est reçu.

Si vous marquez cet événement comme géré dans la gestion de classe, les sous-événements sont toujours déclenchés ; Toutefois, ils passent l’état géré dans les données d’événement. Si l’événement est géré dans la gestion de classe, les gestionnaires instance pour les sous-événements ne sont pas appelés, sauf si vous utilisez AddHandler(RoutedEvent, Delegate, Boolean) explicitement avec handledEventsTootrue pour attacher des gestionnaires. Les gestionnaires de classes ne sont pas non plus appelés, sauf si ces gestionnaires de classe ont été inscrits avec la RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) signature avec handledEventsTootrue. En gérant OnPreviewMouseDown, vous impliquez que la gestion de votre classe a pris en compte toutes les actions possibles du bouton de la souris. Ce comportement peut être indésirable ; Par conséquent, soyez prudent lorsque vous utilisez cette méthode virtuelle pour marquer les événements comme gérés.

Chacun des événements directs spécifiques au bouton a également une méthode On* virtuelle ; Déterminez si la substitution de ces gestionnaires de classes spécifiques aux boutons peut être plus appropriée.

Cette méthode n’a pas d’implémentation par défaut. Étant donné qu’une classe intermédiaire dans l’héritage peut implémenter cette méthode, nous vous recommandons d’appeler l’implémentation de base dans votre implémentation.

L’objectif de cette méthode est similaire au modèle d’événement CLR (Common Language Runtime) On* : cette méthode fournit les moyens de gérer l’événement correspondant à partir de classes dérivées en établissant un gestionnaire de classes au lieu d’un gestionnaire de instance. Dans ce cas, l’événement correspondant est un événement routé. Le modèle d’implémentation des méthodes On* est différent pour les événements routés, car un événement routé peut être déclenché par un élément enfant, qui n’est pas nécessairement l’élément qui appellera des gestionnaires. Par conséquent, votre implémentation doit examiner les propriétés sources des données d’événement. Il ne doit pas essayer de réévaluer l’événement dans la plupart des cas.

Soit en remplaçant cette méthode, soit en inscrivant des gestionnaires de classes auprès RegisterClassHandlerde , les classes dérivées de peuvent appeler des méthodes de gestionnaire de UIElement classes privées lorsque l’événement est reçu le long de l’itinéraire de l’événement. Un scénario où la gestion de classe est appropriée consiste à manipuler les données d’événement et à marquer l’événement routé comme géré. Un autre scénario spécifiquement destiné aux événements en préversion consiste à les marquer comme gérés afin que les gestionnaires de classes bouillonnantes correspondants ne soient pas appelés.

S’applique à

Voir aussi