C# WinForm 帧动画播放教程:简单示例和代码
下面是一个简单的 C# WinForm 代码示例,用于播放帧动画:
- 在窗体上添加一个 PictureBox 控件,设置其 SizeMode 属性为 AutoSize,用于显示动画帧。
- 在窗体上添加一个 Timer 控件,用于定时更新动画帧。
- 创建一个 List
类型的变量,用于存储所有的动画帧。 - 在窗体 Load 事件中,将所有的动画帧添加到 List 中。
- 在 Timer 的 Tick 事件中,更新 PictureBox 的 Image 属性,以显示下一帧动画。
- 在窗体关闭事件中,停止 Timer 控件。
示例代码如下:
public partial class Form1 : Form
{
private List<Image> frames; // 存储所有的动画帧
private int currentFrame; // 当前显示的动画帧
private Timer timer; // 定时器控件
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// 加载所有的动画帧
frames = new List<Image>();
frames.Add(Properties.Resources.frame1);
frames.Add(Properties.Resources.frame2);
frames.Add(Properties.Resources.frame3);
frames.Add(Properties.Resources.frame4);
frames.Add(Properties.Resources.frame5);
// 初始化当前帧
currentFrame = 0;
// 初始化定时器控件
timer = new Timer();
timer.Interval = 100; // 每隔 100 毫秒更新一次
timer.Tick += Timer_Tick;
timer.Start();
}
private void Timer_Tick(object sender, EventArgs e)
{
// 更新 PictureBox 的 Image 属性
pictureBox1.Image = frames[currentFrame];
// 更新当前帧
currentFrame++;
// 判断是否到达最后一帧,如果是则回到第一帧
if (currentFrame >= frames.Count)
{
currentFrame = 0;
}
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
// 停止定时器
timer.Stop();
}
}
原文地址: https://www.cveoy.top/t/topic/ok0G 著作权归作者所有。请勿转载和采集!