演出开始!
我们已经完成了 AnimateCtl,现在可以进行测试。第一步,必须将带有“故事板”的图像文件添加到您的项目中。可以通过将此文件变为嵌入的资源或仅通知 Visual Studio .NET 2003 将此文件作为项目的一部分进行复制来完成此任务。在 Solution Explorer(解决方案资源管理器)中的项目上单击鼠标右键,并在弹出式菜单中选择 Add Existing Item...(添加现有项...)。浏览到图像文件并确保此文件的 Build Action(生成操作)属性已被设置为 Content(内容)。
现在,在窗体的构造函数中插入以下代码:
|
public Form1() { // // Windows Form Designer(Windows 窗体设计器)支持所需 // InitializeComponent();
//实例化控件 animCtl = new AnimateCtl(); //从图像文件指定 Bitmap animCtl.Bitmap = new Bitmap(@"\Program Files\AnimateControl\guestbk.gif"); //设置位置 animCtl.Location = new Point(50, 50); //将控件添加到窗体 this.Controls.Add(animCtl); } |
在上面的代码中,我们使用从图像文件中创建的 Bitmap 对象指定动画控件的 Bitmap 属性。
在设计器的窗体上放置两个按钮,并将以下代码添加到它们的 Click 事件中:
|
private void button1_Click(object sender, System.EventArgs e) { animCtl.StartAnimation(92, 100, 3); }
private void button2_Click(object sender, System.EventArgs e) { animCtl.StopAnimation(); }
|
运行项目并点击 Start Animation(启动动画)按钮,您就可以看到动画了:

图 3:最终产品
伪动画 GIF 文件包含的帧的数目和帧之间的延迟时间可能会变化。当您为不同的动画调用 StartAnimation 方法时,需要调整 DelayInterval 参数。
无论怎么说,此代码都不是最终版本。AnimateCtl 不能提供动画 GIF 中包含的所有功能。例如,AnimateCtl 控件不能处理帧之间的不同延迟时间。例如,您可能希望第一帧显示的时间比其他帧显示的时间稍长一些。本文中的代码对于您来说是一个很好的起点,您可以根据需要扩展此控件。
请记住,显示高分辨率的图形动画将加重系统资源负担。一定要注意运行此代码的某些设备的内存和资源限制。不要忘记进行全面测试,并确保应用程序既不会占用所有内存,也不会占用所有处理器时间。
小结
虽然 .NET Framework 精简版只是 .NET Framework 完整版的一个子集,但是开发人员仍然可以创建对最终用户更具吸引力的用户界面。通过使用 .NET Framework 精简版提供的 GIF 编辑器工具和绘图能力,开发人员可以在其智能设备项目中显示动画。