Timer based animation
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
public class Form1 : System.Windows.Forms.Form{
private System.ComponentModel.IContainer components;
public Form1(){
InitializeComponent();
}
#region Windows Form Designer generated code
private void InitializeComponent(){
this.components = new System.ComponentModel.Container();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.timer1.Enabled = true;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
this.AutoScaleBaseSize = new System.Drawing.Size(6, 15);
this.ClientSize = new System.Drawing.Size(292, 260);
this.Name = "Form1";
this.Text = "LinearGradientBrush Demo";
this.Load += new System.EventHandler(this.Form1_Load);
this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
}
#endregion
static void Main(){
Application.Run(new Form1());
}
private void Form1_Load(object sender, System.EventArgs e) {
this.BackColor = Color.FromArgb(255, 0, 0, 255);
}
private System.Windows.Forms.Timer timer1;
private float angle = 0;
private LinearGradientBrush GetBrush()
{
return new LinearGradientBrush(
new Rectangle( 20, 20, 200, 100),
Color.Orange,
Color.Yellow,
0.0F,
true);
}
private void Rotate( Graphics graphics, LinearGradientBrush brush )
{
brush.RotateTransform(angle);
brush.SetBlendTriangularShape(.5F);
graphics.FillRectangle(brush, brush.Rectangle);
}
private void Rotate(Graphics graphics)
{
angle += 5 % 360;
Rotate(graphics, GetBrush());
}
private void timer1_Tick(object sender, System.EventArgs e)
{
Rotate(CreateGraphics());
}
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Rotate(e.Graphics);
}
}
Related examples in the same category