简体   繁体   中英

Creating an animated splash screen like office 2010

如何使用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

Another example

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM