65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 VB.NET 自定义状态动画

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.88/5 (21投票s)

2008年9月26日

CPOL

2分钟阅读

viewsIcon

73458

downloadIcon

2781

通过自定义动画为您的用户提供眼球糖果

引言

还记得5秒钟内完成的事情真的很快吗?今天,如果你的应用程序中的某些事情需要超过5秒钟,你的用户会认为应用程序被锁定了。当然,我夸张了,但是当你的用户正在等待一个长时间运行的进程完成时,展示一些“引人注目”的东西不好吗?该组件使用 GDI 将一系列 PNG 文件绘制到窗体上,以及一个可更新的标题和消息。概念很简单,但它会让你的应用程序看起来更专业。它在自己的线程上运行并且完全线程安全,因此你可以在动画发生时继续你正在做的事情。

尽情享用!

Using the Code

你可以使用预定义的 AnimationData 对象之一,由相应的枚举引用,或者你可以在组件之外创建一个自定义 AnimationData 对象并将其传入。我更喜欢使用 PNG 文件作为动画的各个帧(图像),因为它们支持 alpha 混合。

CancelClicked 事件

当你允许显示取消链接(使用 AllowCancel 属性)时,你可以拦截取消并使用 CancelClicked 事件提供一个对话框,询问你是否真的要取消动画。在用户点击“是”之后,你可以在应用程序中做任何必要的事情来停止该进程,然后在 eventargs 中设置 e.Cancel = True。这将传递回组件以停止动画。如果你传递回 False (e.Cancel = False),则动画将继续。

AnimationData.FromSingleImage 方法

你可以从包含动画所有帧的单个图像创建 AnimationData 对象。为此,将图像添加到你的项目并调用 AnimationData.FromSingleImage 方法。告诉该方法动画包含多少帧,它会将单个图像拆分成单独的帧并填充图像列表。指定透明颜色将使该颜色在图像中透明。当该方法返回时,根据你的需要设置 AnimationData 属性,并调用 Show 方法。

历史

  • 2008年9月26日:初始发布
  • 2008年9月29日:添加 CancelClicked 事件描述
  • 2008年10月3日:更新代码以修复快速取消
  • 2008年10月7日:添加 AnimationData.FromSingleImage 方法描述
© . All rights reserved.