Splash screen with shadow

Zawsze chciałem coś takiego zrobić, a do tej pory nie wiedziałem że jest to możliwe. Efekt możecie zobaczyć poniżej, a do zrobienia takiego splash screena użyłem tylko tego co daje nam podstawowy WPF. W zasadzie bazując na tym rozwiązaniu można tworzyć aplikacje, rzucające cień na pulpit (czego bardzo mi brakuje w Windows 8).

 splashscreen

Sam efekt jest bardzo prosty do osiągnięcia i wszystko można zapisać w XAMLu.

<Window x:Class="SplashScreenApp.SplashScreen"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Height="350" Width="225" 
        WindowStyle="None" 
        AllowsTransparency="True" 
        Background="Transparent"
        WindowStartupLocation="CenterScreen"
        ShowInTaskbar="False">
    <Grid Background="Transparent">
        <Grid Margin="15" Background="#252526">
            <Grid.BitmapEffect>
                <DropShadowBitmapEffect Direction="-90" Softness="15" ShadowDepth="1" />
            </Grid.BitmapEffect>
            <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
                <TextBlock Text="My App" Foreground="White" FontSize="30"  />
                <TextBlock Text="v.1.0" Foreground="White" FontSize="10"  />
            </StackPanel>
        </Grid>
    </Grid>
</Window>

To co tutaj najważniejsze to:

WindowStyle=”None” – usuwa ramki z okna
AllowsTransparency=”True” – pozwala na przezroczystość wewnątrz okna
WindowStartupLocation=”CenterScreen” – ustawiamy pozycje startową okna na środek ekranu
ShowInTaskbar=”False” – chowamy okno z taskbara

No i najważniejsze czyli tworzymy grida wewnątrz grida, dając lekki margines dla wewnętrznego elementu i dla niego też tworząc DropShadowBitmapEffect. Oszukujemy więc trochę bo nasze okno jest takie duże jak okno wraz z cieniem, ale całość wyszła bardzo ładnie :)