WPF使用鼠标滚轮绑定命令

自定义 MouseGesture类的派生类,取名为 MouseWheelGesture,代码实现如下所示:

class MouseWheelGesture : MouseGesture
{
    public MouseWheelGesture() : base(MouseAction.WheelClick) { }
    public MouseWheelGesture(ModifierKeys modifierKeys) : base(MouseAction.WheelClick, modifierKeys) { }

    public WheelDirection Direction { get; set; }

    // 定义两个 Gesture对象,向上和向下
    public static MouseWheelGesture CtrlUp => new MouseWheelGesture(ModifierKeys.Control) { Direction = WheelDirection.Up };
    public static MouseWheelGesture CtrlDown => new MouseWheelGesture(ModifierKeys.Control) { Direction = WheelDirection.Down };

    public override bool Matches(object targetElement, InputEventArgs inputEventArgs)
    {
        if (base.Matches(targetElement, inputEventArgs) == false) return false;

        if (inputEventArgs is MouseWheelEventArgs == false) return false;

        var arg = inputEventArgs as MouseWheelEventArgs;
        switch (Direction)
        {
            case WheelDirection.None:
                return arg.Delta == 0;
            case WheelDirection.Up:
                return arg.Delta > 0;
            case WheelDirection.Down:
                return arg.Delta < 0;
            default:
                return false;
        }
    }
}

// 枚举滑轮的几种情况
public enum WheelDirection
{
    None,
    Up,
    Down
}

绑定UI界面如下所示:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42100963/article/details/107558398