Reputation: 759
How can I create an animated splash screen like the one in Office 2010 using C#?
Upvotes: 15
Views: 31409
Reputation: 676
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 more complicated. The entire GUI is rendered by the CPU (no GPU support) but you 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.
Upvotes: 3
Reputation: 1473
In WPF it is very easy just right click on project > add new item > splash screen. This
is simple example explaining it.
Upvotes: 0
Reputation: 653
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.
Upvotes: 1
Reputation: 1574
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.
Upvotes: 14
Reputation: 1151
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
Upvotes: 2
Reputation: 623
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);
Upvotes: 1