首页 > 解决方案 > 如何显示动画?

问题描述

好的,我有一个项目,用OEM RX-8 卫星导航罩制造一个汽车电脑!虽然我喜欢这个人选择的界面,但我要自己写。

所以我有两个问题:

什么是“首选”(我敢说最好)类型的动画媒体?IE:Gif、SVG、MPeg、Avi 等。

一旦确定了#1,您会在 WinForms 或 WPF 中执行此操作吗?由于项目将具有其他第 3 方参考,因此必须是这两者之一。

当需要自定义初始屏幕时,我的默认设置总是转到 GIF 和 WinForms。我已经好几年没有做过桌面项目了,所以想看看是否有更新或更好的选择。

我的想法将是两个动画。3 到 5 秒长的“加载”和导航菜单屏幕时始终可以看到的“背景”。

谢谢!

标签: c#wpfwinformsanimation

解决方案


这个问题太宽泛了,无法回答,但是,我在早期就遇到过这样的情况,我需要开始做这样的决策,因为我没有足够的知识。所以这里...

  1. 我应该使用 GIF/AVI/MPEG 等...吗?

首先,您需要对实际情况有一个很好的了解Animations。对于视频,动画只是其自身模拟的东西,是视频的一部分。当涉及到软件或应用程序时,这意味着一些对象需要根据一些数学来改变它的一些属性。

一旦你澄清了这一点,你就会更好地理解要做什么。现在,在应用程序中使用 GIF/MPEG 或 aka 视频文件只能创建它具有动画的错觉,而不是实际的。比如说,你想在你的应用程序中添加一个加载微调器。您可以创建一个使用 After Effects 旋转的微调器的 GIF,并将其与Image控件中的某个位置嵌入到您的应用程序中。

或者

实际上,您可以draw旋转旋转器/圆的一部分并编写代码以使其旋转,从而创建实际的动画。

无论如何,回到实际问题,答案是它取决于!. 如果我们在谈论动画,那么我们首先需要了解我们的需求。此外,我们需要了解什么是视频,什么是图像。AGif只是一组图像,也就是图像文件本身,而 MPEG/AVI 等是视频文件。所以当然GIF是要走的路。

  1. WinForms 与 WPF

好吧,这就是我很久以前对动画和所有东西感兴趣时问自己的问题。看,在这两种情况下,如果您知道要实现哪些逻辑,您就可以构建所需的功能。但是,为了简短起见,您必须知道的一条线是,“当您制作交互式、复杂的 GUI 应用程序时,与 WinForms 相比,WPF 是更好的选择”。

假设您要为menu滑入和滑出设置动画。在 WinForms 中,您必须使用 aTimer并在事件中设置菜单的位置,Tick从而每毫秒更改一次属性值。这样就完成了工作,但是当您实际实施它时,您会看到诸如闪烁、屏幕部分被切掉等问题。

所有这些都在 WPF 中得到解决,它非常关注动画。在 WPF 中,我们称它们为StoryBoards。在那里,所有这些属性值更改都在后台处理,您几乎不需要编写任何代码。

但这不应该是决定 和 之间的唯一WinForm因素WPF。你还需要考虑你的技能。例如,在 WinForms 中,您只需拖放并创建您的设计。当然,您可以创建Custom Control具有自定义外观的复杂 s。这需要大量的 C# 知识以及一些大量的设计原则。在 WPF 中,您不仅需要使用 C# 编写逻辑,还需要使用 XAML 创建设计。您还需要对一些用于缓动函数和所有数学的数学有很好的理解(但不是必需的)。

如果您认为自己可以付出努力并且必须拥有出色的 GUI 应用程序,请使用 WPF 并使用很少的 GIF(整个应用程序中只有一两个)并通过StoryBoards 创建大多数动画。如果您只想要一个 GUI 应用程序,也许外观漂亮但没有动画,请使用 WinForms。但是,在 WinForms 中使用纯 C# 编写动画所需的工作量要比在纯 XAML 或 After Effects 中编写动画所需的工作量要多。

希望这个答案可以帮助您做出正确的决定。干杯!

编辑 0.1

建议最多使用一两个 GIF 的原因是因为我个人认为 WPF 在通过Image控件播放此类文件时会消耗更多内存,并且还可能存在内存泄漏。所以要非常小心。

编辑 0.2

好吧,正如我提到的,可以使用 WinForms 制作复杂的 GUI 应用程序,让我解释一下如何完成它。

假设您想要一个带有蓝色边框和阴影的文本框,您不能纯粹在 WinForms 中创建它。但它仍然可以完成。如果你知道 Photoshop,你可以简单地用阴影绘制一个,导出它,将它rectangle拖放到Panel你的 .为平坦,编写一些代码以在文本框为焦点时删除边框/边框颜色。WindowBackgroundBackgroundImageBorderStyle

最后,你有一个很棒的带有阴影的文本框。这只是一个例子。您可以借助这些第三方工具在 WinForms 中创建其他复杂的设计,但是是的,它不是纯 WINFORMS!. 但是再一次,动画和 WinForms 从来都不是一个很好的组合。


推荐阅读