We've already discussed this by email, I'll put it here so that it could be turned into a ticket.
In Windows Phone 7 the Balder display initialization causes the splash screen (if there is one) to be loaded twice. It seems that when Display.Initialize() is called the splash screen "goes away" and immediately comes back for a short while.
I've tried delaying the initialization and while it solves the splash screen issue, it makes the app "all black" and prevents anything to be rendered (even non-Balder objects).
This is what I tried:
1) in App_Launching, run the display initialization in the completed event of a background worker that waits 2 seconds (with a thread.Sleep).
-> when the initialization is done, the main page (which is already loaded) goes away (with the same system animation you get when the app quits).
2) run the display initialization in the main page constructor, right after InitializeComponent(), and build the Balder scene by code-behind after that. This (besides the inconvenience of creating the scene in .cs) prevents anything to be displayed at all.
If anybody has an idea for a workaround (or a proper fix :-) ) I'll be very interested.
Pardon my insistence but this and the shutdown issue are the two last tiny glitches I'm trying to solve before I can submit my app to the marketplace.
p.s. I'm running the january 2011 SDK update (but nothing changed w.r.t. the previous release).