Wednesday, May 13, 2009

WPF Splash Screen

One thing that many people write for their programs is a small dialog that loads up when you start your application. Sometimes this is just an image file and other times it might show you the progress of the app loading, or even something else. Well now WPF applications can have a simple splash screen for free. This only applies to WPF since I tested it with Forms and it did not work at all. Well on to the coding....

Add an image to your project. I added simple.png to my little test app. from there, look at the properties of the image and it will say that the image is a resource. Just change the build action to be SplashScreen and you are done.

There are some down sides with this way of doing a splash screen. You do not get to control it. If you want to have a progress bar or to programatically change the version number, you cannot do it. Ok, I will say that there is no immediate way to do it. I am sure that one of the many smart people out there will be able to do it someday

The second thing is that it is setup to fade out in 0.5 seconds by default. There is no property on the image to allow you to change this. To make it more customizable you will have to set the image back to a resource and then in your App class create an instance of a ScreenSaver class. From this you can set the time to do the fading and the image resource to use. This gives you more flexibility, but still no handle to the dialog.

This should be simple enough for anyone to recreate it. If you want my sample project, just let me know.

This is a nice small start for WPF to get this type of feature. I like the new things that keep coming out for WPF and can't wait for VS2010 to be completed and released.

No comments: