protected override void OnCreateControl() { base.OnCreateControl(); if (DesignMode) { return; } MouseState = MouseState.OUT; MouseEnter += (sender, args) => { MouseState = MouseState.HOVER; _hoverAnimationManager.StartNewAnimation(AnimationDirection.In); Invalidate(); }; MouseLeave += (sender, args) => { MouseState = MouseState.OUT; _hoverAnimationManager.StartNewAnimation(AnimationDirection.Out); Invalidate(); }; MouseDown += (sender, args) => { if (args.Button == MouseButtons.Left) { MouseState = MouseState.DOWN; _animationManager.StartNewAnimation(AnimationDirection.In, args.Location); Invalidate(); } }; MouseUp += (sender, args) => { MouseState = MouseState.HOVER; Invalidate(); }; }
public MaterialCheckBox() { _animationManager = new AnimationManager { AnimationType = AnimationType.EaseInOut, Increment = 0.05 }; _rippleAnimationManager = new AnimationManager(false) { AnimationType = AnimationType.Linear, Increment = 0.10, SecondaryIncrement = 0.08 }; _animationManager.OnAnimationProgress += sender => Invalidate(); _rippleAnimationManager.OnAnimationProgress += sender => Invalidate(); CheckedChanged += (sender, args) => { _animationManager.StartNewAnimation(Checked ? AnimationDirection.In : AnimationDirection.Out); }; Ripple = true; MouseLocation = new Point(-1, -1); }
protected override void OnMouseUp(MouseEventArgs mevent) { base.OnMouseUp(mevent); _animationManager.StartNewAnimation(AnimationDirection.In, mevent.Location); }