using System.Windows.Input; namespace Developpez.Dotnet.Windows.Input { /// /// Définit un mouvement de la molette de la souris qui peut être utilisé pour appeler une commande. /// public class MouseWheelGesture : MouseGesture { private static readonly MouseWheelGesture _wheelDown; private static readonly MouseWheelGesture _wheelUp; private static readonly MouseWheelGesture _wheelMove; static MouseWheelGesture() { _wheelDown = new MouseWheelGesture(MouseWheelAction.WheelDown); _wheelUp = new MouseWheelGesture(MouseWheelAction.WheelUp); _wheelMove = new MouseWheelGesture(MouseWheelAction.WheelMove); } /// /// Obtient ou définit le MouseWheelAction associé à ce mouvement /// public MouseWheelAction MouseWheelAction { get; set; } /// /// Initialise une nouvelle instance de la classe MouseWheelGesture. /// public MouseWheelGesture() : this(MouseWheelAction.WheelMove, ModifierKeys.None) { } /// /// Initialise une nouvelle instance de la classe MouseWheelGesture avec le MouseWheelAction spécifié. /// /// Action de la molette associée à ce mouvement public MouseWheelGesture(MouseWheelAction action) : this(action, ModifierKeys.None) { } /// /// Initialise une nouvelle instance de la classe MouseWheelGesture avec les MouseWheelAction et ModifierKeys spécifiés. /// /// Action de la molette associée à ce mouvement /// Modificateurs associés à ce mouvement public MouseWheelGesture(MouseWheelAction action, ModifierKeys modifiers) : base(MouseAction.WheelClick, modifiers) { MouseWheelAction = action; } /// /// Détermine si le MouseWheelGesture correspond à l'entrée associée à l'objet InputEventArgs spécifié. /// /// Cible /// Données d'événement d'entrée à comparer à ce mouvement /// true si le MouseWheelGesture correspond à l'entrée associée à l'objet InputEventArgs spécifié, sinon false public override bool Matches(object targetElement, InputEventArgs inputEventArgs) { if (base.Matches(targetElement, inputEventArgs)) { MouseWheelEventArgs wheelArgs = inputEventArgs as MouseWheelEventArgs; if (wheelArgs != null) { if (MouseWheelAction == MouseWheelAction.WheelMove || MouseWheelAction == MouseWheelAction.WheelDown && wheelArgs.Delta < 0 || MouseWheelAction == MouseWheelAction.WheelUp && wheelArgs.Delta > 0) { return true; } } } return false; } /// /// Obtient le mouvement de rotation de la molette vers le bas /// public static MouseWheelGesture WheelDown { get { return _wheelDown; } } /// /// Obtient le mouvement de rotation de la molette vers le haut /// public static MouseWheelGesture WheelUp { get { return _wheelUp; } } /// /// Obtient le mouvement de rotation de la molette dans n'importe quel sens /// public static MouseWheelGesture WheelMove { get { return _wheelMove; } } } /// /// Spécifie des constantes qui définissent les actions de la molette de la souris. /// public enum MouseWheelAction { /// /// Rotation de la molette dans n'importe quel sens /// WheelMove, /// /// Rotation de la molette vers le haut /// WheelUp, /// /// Rotation de la molette vers le bas /// WheelDown } }