当前位置导航:炫浪网>>网络学院>>编程开发>>Visual C#教程

C# Winform中绘制动画的方法

最近在做一个图片查看器,由于使用一般的PctureBox,在性能和缩放控制上都无法满足预期的要求,因此所有组件的呈现均是通过重写控件的OnPaint事件来绘制。在查看gif图片时发现Graphics.DrawImage只呈现第一帧,无法满足预期要求,因此经过摸索寻找到了解决自绘gif的较好办法。

这里介绍一个.net自身携带的类ImageAnimator,这个类类似于控制动画的时间轴,使用ImageAnimator.CanAnimate可以判断一个图片是否为动画,调用ImageAnimator.Animate可以开始播放动画,即每经过一帧的时间触发一次OnFrameChanged委托,我们只要在该委托中将Image的活动帧选至下一帧再迫使界面重绘就可以实现动画效果了。

为了方便以后的使用,我将这些代码整合到了一起,形成一个AnimateImage类,该类提供了CanAnimate、FrameCount、CurrentFrame等属性,以及Play()、Stop()、Reset()等动画常用的方法,代码如下

Code
  1using System;  
  2using System.Collections.Generic;  
  3using System.Text;  
  4using System.Drawing;  
  5using System.Drawing.Imaging;  
  6 
  7namespace GifTest  
  8{  
  9    /**////   
 10    /// 表示一类带动画功能的图像。  
 11    ///   
 12    public class AnimateImage   

相关内容
赞助商链接