如何使用C#创建Office 2010中的动画启动画面?
Is this question about winforms or wpf?
If it's about wpf:
An animated splash screen is not more than a wpf window showing while your "Main Window" is loading. You can design this splash window with Expression Blend as explained by wischi.
You can also have a look at this code project .
For creating some kind of a loading animation: A Simple WPF Loading Animation
Just create a window with an animation defined in xaml and show it while your application is loading -> animated splash screen.
In Winforms:
You may have to override the paint method of a form to create an animation. But it's still showing another window which contains an animation while another window is loading.
I recommend using WPF for modern application design and your splashscreen problem.
Expression Blend is a nice tool for creating animations and xaml designs. But you can also design animations by writing plain xaml as well
Expression Blend Tutorials
Animation Using Expression Blend: How to create an animation
Animation Using Expression Blend: How to start animations on events
MSDN Info
Animation Overview
Using Winforms it will be much mor compicated. The entire GUI is rendered by the CPU (no GPU support) but u can create a custom usercontrol and overwrite the Paint
event and use GDI for drawing, but this will be much more complicated then using wpf.
if you want to make a dynamic animated splash screen like Office 2010 , i recommend you to use WPF and never think about WinForms to make dynamic animation with code !
but if you are determined of using WinForms you have to be tricky , and use one of this tricks :
• put a Flash ActiveX Object , and make your animation with Flash then link them together
• if you are good with WPF and Silverlight you can make your animation with Silverlight and view it in a WebBrowser Control , You may also use Flash or HTML5
A detailed guide for a splashscreen is here: eExample splashscreen
Although the basics is:
1) Create a splashscreen, show it, close/dispose it
private void SplashForm()
{
SplashForm newSplashForm = new SplashForm();
newSplashForm.ShowDialog();
newSplashForm.Dispose();
}
2) Run the splashscreen on a seperate thread/backgroundworker
Thread t1 = new Thread(new ThreadStart(SplashForm));
t1.Start();
Thread.Sleep(5000); // 5 seconds
t1.Abort();
Thread.Sleep(1000);
In Winforms, the simplest way is using a PictureBox with an animated Gif on a splashscreen.
This way allows you to spend more time on your animation than your code.
In WPF it is very easy just right click on project > add new item > splash screen. This
is simple example explaining it.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.