Animated Glow Effect for Button - C# Windows Forms
10:23 18 Aug 2016

I want to apply animation to my button when pressing button. In WPF I can use Storyboard with triggers to create animation. Here is an example:


  

and:



  

Windows Forms doesn't have Storyboard and triggers. How to make smooth animation in Windows Forms?

Here's my code for Windows Forms:

void DelayTime()
{
  timer = new Timer();
  timer.Interval = (int)System.TimeSpan.FromSeconds(this.DelayTime).TotalMilliseconds;
  timer.Tick += (s, es) =>
  {
    this.mouseover = false; 
    this.Cursor = Cursors.Hand;
    this.Enabled = true;
  };
  timer.Start();
}

protected override void OnMouseDown(MouseEventArgs mevent)
{
  base.OnMouseDown(mevent);
  mouseover = true;
  this.Enabled = false;
  DelayTime();
}

protected override void OnPaint(PaintEventArgs e)
{
  Color bg = this._Background;
  bg = mouseover ? this._HoverColor : this._Background;
  e.Graphics.FillRectangle(new SolidBrush(bg), this.ClientRectangle);
}
c# .net winforms button custom-controls