创建动态按钮

6
我有一个按钮,是否可以在点击时创建动画?
使用Photoshop,我已经创建了两个图像(启用和禁用)。将PictureBox插入Windows Forms并单击事件。单击图像从启用更改为禁用,但您可以有动画效果吗?
像这样:
(显示了一个启用和禁用之间的平滑过渡的动画)

它是基于XAML还是WinForms的?在XAML中进行动画很容易。 - kol
Metro?WinForms?WPF?Silverlight?ASP.Net?MonoTouch? - SLaks
我重新打了winforms的标签,因为你提到了Windows Forms和PictureBox。你使用哪个GUI界面非常重要,因为答案会有很大不同。 - LarsTech
这对我来说非常困难! - jolly
2个回答

1

看起来你提到了WinForms,所以我会解决这个问题。是的,动画是可能的,但一般来说需要花费一些功夫。

CodeProject上似乎有一个通用动画框架的实现(虽然有限)。在评论中,schallos发布了使用表达式树更好的反射代码实现。

一般原则是:

  • 使用PictureBox,这样可以获得双缓冲
  • 使用计时器控件来控制重绘(在PictureBox上调用Invalidate()
  • 您可能希望将一些缓和效果添加到动画中,使其看起来更平滑;当用户单击时添加一些加速度会有很大的帮助。

1

使用 GIF 不需要计时器。

使用 Windows 表单,您可以通过为每个按钮创建一个动画 GIF 来开始。它必须包括前进和后退方向。您可以通过 Photoshop 中的“动画”面板来完成此操作。在 PictureBox 单击事件中,您可以设置图像播放或停止。

下面的代码将在开始帧上设置您的图像。

imgButtonDimension = new FrameDimension(imgButtonDimension.FrameDimensionsList[0]);
imgButton.SelectActiveFrame(imgButtonDimension, 0);
pictureBox.Image = imgButton;`

如果这是你想采取的方法,我可以提供进一步的阐述。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接