ContentElement.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.Invoked when an unhandled PreviewMouseDown attached routed event reaches an element in its route that is derived from this class. Implémentez cette méthode pour ajouter la gestion de classes pour cet événement.Implement this method to add class handling for this event.

protected public:
 virtual void OnPreviewMouseDown(System::Windows::Input::MouseButtonEventArgs ^ e);
protected internal 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 Friend Overridable Sub OnPreviewMouseDown (e As MouseButtonEventArgs)

Paramètres

e
MouseButtonEventArgs

MouseButtonEventArgs qui contient les données d'événement.The MouseButtonEventArgs that contains the event data. Les données d’événement indiquent qu’un ou plusieurs boutons de la souris ont été enfoncés.The event data reports that one or more mouse buttons were pressed.

Remarques

Les actions du bouton de la souris sont également gérées par un gestionnaire d’entrée dédié.Mouse button actions are also handled by a dedicated input manager. D’autres fonctionnalités de programmation qui reposent sur des actions de bouton de la souris, telles que des liaisons d’entrée et de commande, peuvent appeler des gestionnaires pour l’action avant qu’elle ne soit exposée comme une action de bouton de souris générale.Other programming features that rely on mouse button actions, such as input and command bindings, might invoke handlers for the action before it is exposed as a general mouse button action. Si ces fonctionnalités de système d’entrée marquent l’événement Mouse.PreviewMouseDown comme géré, OnPreviewMouseDown n’est pas appelé.If these input system features mark the Mouse.PreviewMouseDown event as handled, OnPreviewMouseDown is not invoked.

Si vous utilisez ce gestionnaire de classe pour marquer l’événement comme étant géré, vous risquez d’avoir un impact sur les événements suivants : PreviewMouseLeftButtonDown et PreviewMouseRightButtonDown.If you use this class handler to mark the event as handled, you potentially impact the following events: PreviewMouseLeftButtonDown and PreviewMouseRightButtonDown. L’un de ces événements peut être déclenché sur l’élément de réception lors de la réception de Mouse.PreviewMouseDown.Either of these events may be raised on the receiving element when Mouse.PreviewMouseDown is received.

Si vous marquez cet événement comme géré dans la gestion des classes, les sous-événements sont toujours déclenchés ; Toutefois, ils passent l’état géré dans les données d’événement.If you mark this event as handled in class handling, subevents are still raised; however, they pass the handled state in the event data. Si l’événement est géré dans la gestion de classe, les gestionnaires d’instance des sous-événements ne sont pas appelés, sauf si vous utilisez explicitement AddHandler(RoutedEvent, Delegate, Boolean) avec handledEventsToo true pour joindre des gestionnaires.If the event is handled in class handling, instance handlers for the subevents are not invoked unless you explicitly use AddHandler(RoutedEvent, Delegate, Boolean) with handledEventsToo true in order to attach handlers. Les gestionnaires de classe ne sont pas non plus appelés, à moins que ces gestionnaires de classe n’aient été inscrits avec la signature RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) avec handledEventsToo true.Class handlers also are not invoked unless those class handlers were registered with the RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) signature with handledEventsToo true. En gérant OnPreviewMouseDown, vous supposez que votre gestion de classe est comptabilisée pour toutes les actions possibles du bouton de la souris.By handling OnPreviewMouseDown, you are implying that your class handling accounted for all possible mouse button down actions. 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.This behavior might be unwanted; Therefore, use caution when you use this virtual method to mark events as handled.

Chacun des événements directs spécifiques au bouton possède également une méthode virtuelle sur* ; Déterminez si la substitution de ces gestionnaires de classe spécifiques aux boutons peut être plus appropriée.Each of the button-specific direct events also has a virtual On* method; consider whether overriding these button-specific class handlers might be more appropriate.

Cette méthode n’a pas d’implémentation par défaut.This method has no default implementation. É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 de.Because an intermediate class in the inheritance might implement this method, we recommend that you call the base implementation in your implementation.

L’objectif de cette méthode est similaire au modèle d’événement Common Language Runtime (CLR)common language runtime (CLR) sur* méthodes : cette méthode fournit les moyens de gérer l’événement correspondant à partir des classes dérivées en établissant un gestionnaire de classe au lieu d’un gestionnaire d’instance.The purpose of this method is similar to the Common Language Runtime (CLR)common language runtime (CLR) event pattern On* methods: this method provides the means to handle the matching event from derived classes by establishing a class handler instead of an instance handler. Dans ce cas, l’événement correspondant est un événement routé.In this case the matching event is a routed event. Le modèle d’implémentation de sur* méthodes 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 les gestionnaires.The implementation pattern of the On* methods is different for routed events because a routed event can be raised by a child element, which is not necessarily the element that will invoke handlers. Par conséquent, votre implémentation doit examiner les propriétés sources des données d’événement.Therefore, your implementation needs to examine the source properties of the event data. Dans la plupart des cas, il ne doit pas essayer de déclencher à nouvel événement.It should not try to reraise the event in most cases.

En substituant cette méthode ou en inscrivant des gestionnaires de classe avec RegisterClassHandler, les classes dérivées de ContentElement peuvent appeler des méthodes de gestionnaire de classes privées lorsque l’événement est reçu le long de l’itinéraire d’événement.Either by overriding this method or by registering class handlers with RegisterClassHandler, derived classes of ContentElement can call private class handler methods when the event is received along the event route. Un scénario dans lequel la gestion de classe est appropriée consiste à manipuler les données d’événement et à marquer l’événement routé comme géré.One scenario where class handling is appropriate is to manipulate the event data and mark the routed event as handled. Un autre scénario spécifiquement pour les événements d’aperçu consiste à les marquer comme gérés afin que les gestionnaires de classe de propagation correspondants ne soient pas appelés.Another scenario that is specifically for Preview events is to mark them handled so that the matching bubbling class handlers are not invoked.

S’applique à

Voir aussi