首页 > 编程 > C# > 正文

C#手工双缓冲技术用法实例分析

2020-01-24 01:44:12
字体:
来源:转载
供稿:网友

本文实例讲述了C#手工双缓冲技术。分享给大家供大家参考。具体如下:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace advanced_drawing{  public partial class Form19 : Form  {    BufferedGraphicsContext bufferContext;    Bitmap gif = new Bitmap(@"d:/我的文档/桌面/ico/a.GIF");    public Form19()    {      InitializeComponent();      bufferContext = new BufferedGraphicsContext();      bufferContext.MaximumBuffer = this.ClientRectangle.Size;    }    void gif_FrameChanged(object sender, EventArgs e)    {      Graphics g = this.CreateGraphics();      BufferedGraphics frame = bufferContext.Allocate(g, this.ClientRectangle);      ImageAnimator.UpdateFrames(gif);      frame.Graphics.DrawImage(gif, this.ClientRectangle);      frame.Render();    }    private void Form19_FormClosing(object sender, FormClosingEventArgs e)    {      bufferContext.Dispose();    }    private void Form19_Paint(object sender, PaintEventArgs e)    {      if (ImageAnimator.CanAnimate(gif))      {        ImageAnimator.Animate(gif, gif_FrameChanged);      }    }  }}

希望本文所述对大家的C#程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表