views:

528

answers:

2

I followed the simple steps outlined at How to: Add a Splash Screen to a WPF Application to add a splash screen to my WPF application. When I start the application, the splash image is shown, then the main window pops up, and the splash image fades away.

My problem is that when the main window pops up, it appears on top of the splash image. Then when the splash image begins to fade out, the splash image pops up to the top again. The end result is that the splash image disappears for a split second as the main window appears.

How can I force the main window to appear under the splash image, so that the splash image does not disappear?

+1  A: 

This isn't default behaviour you must have some code thats manually focusing the main window?

It may be easier just to turn off the fade manually with a bit of code like this:

_splash = new SplashScreen("LoadingScreen.png");

_splash.Show(false);

_splash.Close(TimeSpan.Zero);

Daniel
I will look to see if there is some code which is doing the focus; it might be from a third-party component. Since I added the splash screen using a resource's Build Action, how would I go about accessing it like you did...?
emddudley
In your app.cs file declare a global field "protected SplashScreen _splash;". In the constructor have the first two lines of code from above. In your OnStartup event at the end of the method after all the startup logic is completed insert the last line of code above.That should be it.
Daniel
A: 

Not sure if this will help, but if you set the owner of the Splash screen to the current form, then this should maybe do the trick?

_splash.Owner = this;

Otherwise you can look here:

http://stackoverflow.com/questions/2455703/splash-screen-example/2455828#2455828

This might help too.

Richard