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#程序设计有所帮助。