C# Winform中绘制动画的方法
来源:互联网 发布:为什么讨厌赵丽颖 知乎 编辑:程序博客网 时间:2024/04/28 00:37
最近在做一个图片查看器,由于使用一般的PctureBox,在性能和缩放控制上都无法满足预期的要求,因此所有组件的呈现均是通过重写控件的OnPaint事件来绘制。在查看gif图片时发现Graphics.DrawImage只呈现第一帧,无法满足预期要求,因此经过摸索寻找到了解决自绘gif的较好办法。
这里介绍一个.net自身携带的类ImageAnimator,这个类类似于控制动画的时间轴,使用ImageAnimator.CanAnimate可以判断一个图片是否为动画,调用ImageAnimator.Animate可以开始播放动画,即每经过一帧的时间触发一次OnFrameChanged委托,我们只要在该委托中将Image的活动帧选至下一帧再迫使界面重绘就可以实现动画效果了。
为了方便以后的使用,我将这些代码整合到了一起,形成一个AnimateImage类,该类提供了CanAnimate、FrameCount、CurrentFrame等属性,以及Play()、Stop()、Reset()等动画常用的方法,代码如下
使用如下方法调用:
有点不完美的地方,在Paint事件中,必须锁定Image,否则很容易出现“对象当前正在其他地方使用。”的异常,因为AnimateImage也在使用这个Image对象。如果你有更好的解决办法,欢迎给我留言~~
- C# Winform中绘制动画的方法
- 在winform中绘制矩形的方法
- C# WinForm中进度条的实现方法
- C# WINFORM中嵌入FLASH的方法
- C# WINFORM中嵌入FLASH的方法
- C# winform绘制条形统计图的例子
- 用c#实现winform的动画效果
- C# WINFORM 编程中,选择**文件夹**而不是文件的方法
- 关于C# WinForm中进度条的实现方法
- C#中Winform动态调用Webservice的方法
- C#中Winform动态调用Webservice的方法
- C# winform 中表格隐藏第一列的方法
- C#中Winform动态调用Webservice的方法
- C# WinForm中ListView 的绑定和读取方法
- C# WinForm中实现MessageBox.Show()的常用方法
- 关于C# WinForm中进度条的实现方法
- C# WinForm程序中不在任务栏显示的处理方法
- 关于C# WinForm中进度条的实现方法
- 通用js 表单验证
- [转]我的C++学习历程(^_^) 选择自 pongba 的 Blog
- 对标准PE文件各个重要部分进行的修改测试
- KMP模式匹配算法分析与实现
- 虽年龄回不到过去,但心能记得过去就好
- C# Winform中绘制动画的方法
- 二十面体
- 在Linux世界驰骋系列之二——Shell编程 (1)
- [转]很重要的七则原则
- git入门教程
- 2009-02-07开始写毕业设计
- 计算器代码
- 关于电脑的开机警报声
- [ACE_Proactor网络通信示例-Part.1]