【发布时间】:2013-02-01 11:24:57
【问题描述】:
如何使用 C# 创建类似于 Office 2010 中的动画启动屏幕?
【问题讨论】:
标签: c# user-interface splash-screen
如何使用 C# 创建类似于 Office 2010 中的动画启动屏幕?
【问题讨论】:
标签: c# user-interface splash-screen
这个问题是关于 winforms 还是 wpf 的?
如果是关于 wpf:
动画启动屏幕只不过是在加载“主窗口”时显示的 wpf 窗口。如 wischi 所述,您可以使用 Expression Blend 设计此启动窗口。
你也可以看看这个code project。
用于创建某种加载动画:A Simple WPF Loading Animation
只需使用在 xaml 中定义的动画创建一个窗口,并在您的应用程序加载时显示它 -> 动画启动屏幕。
在 Winforms 中:
您可能必须覆盖表单的绘制方法才能创建动画。但它仍然显示另一个窗口,其中包含一个动画,而另一个窗口正在加载。
【讨论】:
我建议将 WPF 用于现代应用程序设计和您的闪屏问题。
Expression Blend 是用于创建动画和 xaml 设计的好工具。但是你也可以通过编写普通的 xaml 来设计动画
表达式混合教程
Animation Using Expression Blend: How to create an animation
Animation Using Expression Blend: How to start animations on events
MSDN 信息
Animation Overview
使用 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) 在单独的线程/backgroundworker 上运行启动画面
Thread t1 = new Thread(new ThreadStart(SplashForm));
t1.Start();
Thread.Sleep(5000); // 5 seconds
t1.Abort();
Thread.Sleep(1000);
【讨论】:
在 Winforms 中,最简单的方法是在初始屏幕上使用带有动画 Gif 的 PictureBox。
这种方式可以让您在动画上花费比代码更多的时间。
【讨论】:
在 WPF 中,只需右键单击项目 > 添加新项目 > 启动屏幕即可。 This
是一个简单的例子来解释它。
【讨论】: