Mega Code Archive

 
Categories / C# / 2D Graphics
 

Animation and double buffer

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; public class Form1 : Form {     private bool isShrinking = false;     private int extraSize = 0;     private System.Windows.Forms.Timer tmrRefresh;     private System.Windows.Forms.CheckBox chkDoubleBuffer;       public Form1() {             InitializeComponent();       tmrRefresh.Start();       }     private void tmrRefresh_Tick(object sender, System.EventArgs e)     {       if (isShrinking)         extraSize--;       else         extraSize++;       if (extraSize > 500)         isShrinking = true;       else if (extraSize < 1)         isShrinking = false;       this.Invalidate();     }     private void DoubleBuffering_Paint(object sender, System.Windows.Forms.PaintEventArgs e)     {       this.DoubleBuffered = chkDoubleBuffer.Checked;       Graphics g = e.Graphics;       g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;       Pen drawingPen = new Pen(Color.Black, 10);       g.FillRectangle(Brushes.White, new Rectangle(new Point(0, 0),               this.ClientSize));       g.DrawRectangle(drawingPen, 50, 50, 50 + extraSize, 50 + extraSize);     }     private void InitializeComponent()     {       this.tmrRefresh = new System.Windows.Forms.Timer(new System.ComponentModel.Container());       this.chkDoubleBuffer = new System.Windows.Forms.CheckBox();       this.SuspendLayout();       //        // tmrRefresh       //        this.tmrRefresh.Interval = 1;       this.tmrRefresh.Tick += new System.EventHandler(this.tmrRefresh_Tick);       //        // chkDoubleBuffer       //        this.chkDoubleBuffer.BackColor = System.Drawing.Color.White;       this.chkDoubleBuffer.Location = new System.Drawing.Point(12, 12);       this.chkDoubleBuffer.Name = "chkDoubleBuffer";       this.chkDoubleBuffer.Size = new System.Drawing.Size(336, 16);       this.chkDoubleBuffer.TabIndex = 2;       this.chkDoubleBuffer.Text = "Use Double Buffering";       this.chkDoubleBuffer.UseVisualStyleBackColor = false;       //        // DoubleBuffering       //        this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;       this.ClientSize = new System.Drawing.Size(422, 373);       this.Controls.Add(this.chkDoubleBuffer);       this.Name = "DoubleBuffering";       this.Text = "Form1";       this.Paint += new System.Windows.Forms.PaintEventHandler(this.DoubleBuffering_Paint);       this.ResumeLayout(false);     }   [STAThread]   static void Main()   {     Application.EnableVisualStyles();     Application.Run(new Form1());   } }