Mouse.MouseDown Événement attaché

Définition

Se produit lorsqu'un bouton de la souris est enfoncé.

see AddMouseDownHandler, and RemoveMouseDownHandler
see AddMouseDownHandler, and RemoveMouseDownHandler
see AddMouseDownHandler, and RemoveMouseDownHandler

Remarques

Pour déterminer le bouton de la souris qui a été enfoncé, case activée la ChangedButton propriété dans le MouseButtonEventArgs passé au gestionnaire.

Il s’agit d’un événement attaché. WPF implémente les événements joints en tant qu’événements routés. Les événements joints sont fondamentalement un concept de langage XAML permettant de référencer des événements qui peuvent être gérés sur des objets qui ne définissent pas cet événement, sur lequel WPF développe en permettant également à l’événement de traverser un itinéraire. Les événements attachés n’ont pas de syntaxe de gestion directe dans le code ; pour attacher des gestionnaires pour un événement routé dans le code, vous utilisez une méthode Add*Handler désignée. Pour plus d’informations, consultez Vue d’ensemble des événements attachés.

L’infrastructure Windows Presentation Foundation (WPF) s’appuie sur cet événement attaché en le exposant sous la forme de deux événements CLR (Common Language Runtime) différents sur UIElement et ContentElement: MouseLeftButtonDown et MouseRightButtonDown. Ces implémentations gèrent l’événement sous-jacent MouseDown et lisent les arguments de l’événement pour déterminer si le bouton gauche ou droit de la souris a été impliqué. Pour une souris à trois boutons, il n’existe aucune prise en charge des événements au niveau de l’infrastructure pour le bouton central. Vous devez utiliser l’événement MouseDown et case activée l’état MiddleButton dans les arguments de l’événement.

Important

Quelques ContentElement classes dérivées qui ont un comportement de type contrôle, par exemple, Hyperlinkpeuvent avoir une gestion de classe inhérente pour les événements de bouton de la souris. L’événement du bouton gauche de la souris vers le bas est l’événement le plus susceptible d’avoir une gestion de classe dans un contrôle. La gestion de classe marque souvent l’événement de classe sous-jacent Mouse comme géré. Une fois l’événement marqué comme géré, les autres gestionnaires de instance attachés à cet élément ne sont généralement pas déclenchés. Les autres gestionnaires de classe ou de instance qui sont attachés à des éléments dans la direction de la bulle vers la racine dans l’arborescence de l’interface utilisateur ne sont pas non plus généralement déclenchés.

Vous pouvez résoudre le problème décrit dans la note importante précédente et continuer à recevoir MouseDown des événements pour les événements du bouton gauche de la souris sur une classe dérivée qui a une gestion de classe à l’aide de l’une des solutions suivantes :

  • Attachez des gestionnaires pour l’événement PreviewMouseDown , qui n’est pas marqué comme géré par les contrôles. Notez qu’étant donné qu’il s’agit d’un événement en préversion, l’itinéraire démarre à la racine et descend jusqu’au contrôle.

  • Inscrivez un gestionnaire sur le contrôle de manière procédurale en appelant AddHandler et en choisissant l’option de signature qui permet aux gestionnaires d’écouter les événements même s’ils sont déjà marqués comme gérés dans les données d’événement routées.

Pour les événements routés qui se rapportent à la souris, veillez à savoir comment et quand vous les marquez. La difficulté à faire les choix appropriés quant à savoir si les éléments parents doivent également être informés d’une action donnée de la souris est en fait la raison pour laquelle l’infrastructure WPF a choisi de faire apparaître l’événement routé de la souris sous-jacent en tant qu’événements CLR le long de l’itinéraire. Des problèmes similaires existent avec les événements de souris de tunneling. Devez-vous gérer l’événement et ne pas le faire gérer par d’autres enfants vers la source, et comment cela affecterait-il la composition d’un contrôle où les éléments de composition peuvent avoir attendu des comportements de souris ?

Informations sur les événements acheminés

Champ Identificateur MouseDownEvent
Stratégie de routage Bouillonnant
Délégué MouseButtonEventHandler

S’applique à