views:

345

answers:

3

Hello,

I was intending to create a Splash screen like the one sported by Visual Studio 2010 for my desktop application (feel free to use any version of C#/VB/CLR).

Visual Studio 2010 Splash Screen

As per the Visual Studio blogs, the splash screen was not developed using WPF since it would involve the CLR and WPF libraries to load causing a substantial delay in app loading. Hence, they reverted to C++ and Win32 stack to do that same for performance reasons.

Is there a feasible option available for WinForms or WPF developer to leverage the same branding? The idea is to have similar rich branding in a splash screen without loosing performance and start-up time.

Using PNGs and Transparency effects doesnot help on WinForms (a known issue, and i have read related questions on this site for that). Just to emphasise: its a splash screen, so start-up time can't be compromised.

Any suggestions would be appreciated!

A: 

I Had to do something similar with a patcher for an MMO and we like pretty splash screens in games. I made a custom ONLOAD event (instead of OnShown or Load event that both present a few inconveniences in this case) and put my code for displaying the pretty picture there

    protected override void OnLoad(EventArgs args)
{
    base.OnLoad(args);

    Application.Idle += new EventHandler(OnLoaded);
}

private void OnLoaded(object sender,
                      EventArgs args)
{
    Application.Idle -= new EventHandler(OnLoaded);

    // TODO: add relevant code here
}

As for the picture, surely is there a way for displaying png's using native behavior (for partial transparency like in the VS Splash screen)

F.Saad
+1  A: 

Have you had a look at this resource ? Or this one ?

thelost
Thanks a lot for the resources.Just a concern though: I understand Win32 APIs are the way out for these scenarios, but as my first preference, was wishing to avoid them.Nonetheless, surely useful.
Vaibhav
avoiding = missing a chance to learn something new
thelost
Totally accept your definition of "avoiding".Was into VB6 development prior to .NET and hence have written descent bits of Win32 API code. Avoiding was not for skipping to learn the Win32 API but to try find a cleaner (managed, if you will) way of doing the same.
Vaibhav
+1  A: 

The guys that wrote it actually did a post on it ...

http://blogs.msdn.com/b/visualstudio/archive/2009/11/11/behind-the-scenes-splash-screen.aspx

Bill
Yes, I had read the post and thats the reason why i mentioned "As per the Visual Studio blogs".Thanks for pointing the URI (i should have done that earlier)!
Vaibhav
Oh ha. I should read questions more thoroughly. Apologies.
Bill