C#手工双缓冲技术用法实例分析
本文实例讲述了C#手工双缓冲技术。分享给大家供大家参考。具体如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
namespaceadvanced_drawing
{
publicpartialclassForm19:Form
{
BufferedGraphicsContextbufferContext;
Bitmapgif=newBitmap(@"d:/我的文档/桌面/ico/a.GIF");
publicForm19()
{
InitializeComponent();
bufferContext=newBufferedGraphicsContext();
bufferContext.MaximumBuffer=this.ClientRectangle.Size;
}
voidgif_FrameChanged(objectsender,EventArgse)
{
Graphicsg=this.CreateGraphics();
BufferedGraphicsframe=bufferContext.Allocate(g,this.ClientRectangle);
ImageAnimator.UpdateFrames(gif);
frame.Graphics.DrawImage(gif,this.ClientRectangle);
frame.Render();
}
privatevoidForm19_FormClosing(objectsender,FormClosingEventArgse)
{
bufferContext.Dispose();
}
privatevoidForm19_Paint(objectsender,PaintEventArgse)
{
if(ImageAnimator.CanAnimate(gif))
{
ImageAnimator.Animate(gif,gif_FrameChanged);
}
}
}
}
希望本文所述对大家的C#程序设计有所帮助。