Animation and double buffer

image_pdfimage_print

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()); } } [/csharp]

This entry was posted in 2D Graphics. Bookmark the permalink.