如何使用 C# 创建类似于 Office 2010 中的动画启动屏幕?
6 回答
这是关于winforms或wpf的问题吗?
如果是关于 wpf:
动画启动屏幕只不过是在加载“主窗口”时显示的 wpf 窗口。如 wischi 所述,您可以使用 Expression Blend 设计此启动窗口。
你也可以看看这个代码项目。
用于创建某种加载动画:A Simple WPF Loading Animation
只需创建一个带有在 xaml 中定义的动画的窗口,并在您的应用程序加载时显示它 -> 动画启动屏幕。
在 Winforms 中:
您可能必须重写窗体的绘制方法来创建动画。但它仍然显示另一个窗口,其中包含一个动画,而另一个窗口正在加载。
我建议将WPF用于现代应用程序设计和闪屏问题。
Expression Blend 是用于创建动画和 xaml 设计的好工具。但是你也可以通过编写普通的 xaml 来设计动画
Expression Blend 教程
使用 Expression Blend 的动画:如何创建
动画 使用 Expression Blend 的动画:如何在事件上启动动画
MSDN 信息
动画概述
使用 Winforms 会复杂得多。整个 GUI 由 CPU 渲染(不支持 GPU),但您可以创建自定义用户控件并覆盖Paint
事件并使用 GDI 进行绘图,但这会比使用 wpf 复杂得多。
如果你想制作像 Office 2010 这样的动态动画闪屏,我建议你使用WPF,永远不要考虑使用WinForms来使用代码制作动态动画!
但是,如果您确定要使用 WinForms,则必须很棘手,并使用以下技巧之一:
• 放置一个 Flash ActiveX 对象,并使用 Flash 制作动画,然后将它们链接在一起
• 如果您擅长WPF和Silverlight,您可以使用 Silverlight 制作动画并在 WebBrowser 控件中查看,您也可以使用 Flash 或HTML5
启动画面的详细指南在这里: eExample splashscreen
虽然基础是:
1)创建一个启动画面,显示它,关闭/处理它
private void SplashForm()
{
SplashForm newSplashForm = new SplashForm();
newSplashForm.ShowDialog();
newSplashForm.Dispose();
}
2)在单独的线程/后台工作人员上运行启动画面
Thread t1 = new Thread(new ThreadStart(SplashForm));
t1.Start();
Thread.Sleep(5000); // 5 seconds
t1.Abort();
Thread.Sleep(1000);
在 Winforms 中,最简单的方法是在初始屏幕上使用带有动画 Gif 的 PictureBox。
这种方式使您可以在动画上花费比代码更多的时间。
在 WPF 中,只需右键单击项目 > 添加新项目 > 启动屏幕即可。这
是一个简单的例子来解释它。