In the past I developed very often SplashScreens to bridge loading time and I always played around with Windows API to make windows partly transparent.

Now I tried to make a real cool SplashScreen, because I wanted to understand some principles of multithreaded coding (splash screens should not increase loading time), user experience (users should feel that they know, what’s going on and how long it really takes), coolness (like transparency and the effect “wow – how this is done – the developer must be a great guy”).

So for the last effect I searched quite a lot but finally I found a very easy thing – just a property of a Windows Form in .NET: TransparencyKey – so if you set the TransparencyKey to a value like LimeGreen – everything on the Form becomes transparent if it’s Background Color is LimeGreen.

TransparentKey_Highlight_Property

Property TransparencyKey of a Windows Form

TransparentKey_Define_TransparentBackground

Here the form an the stuff that should be transparent is LimeGreen now.

TrasparentKey_Result

And here the result on my desktop – with red highlighting to highlight what I meant.

Cool – isn’t it?