Add to Favorites
 
Splash Screen

  Jedna z novinek uvedených v SP1 pro WPF 3.5 je tzv. splash screen. Jedná se o úvodní či uvítací obrazovku, která se zobrazí ihned po spuštění aplikace a zmízí jakmile je aplikace načtena.



Do WPF byla tato novinka uvedena zejména z důvodu, že si vývojáři stěžovali na délku načítání WPF aplikací při tzv. studeném startu, kdy mezi kliknutím na spouštěcí soubor a samotném nahrání aplikace je dlouhá prodleva a uživatel nemá žádnou zpětnou vazbu, zda se aplikace opravdu spouští. Splash screen má v tomto případě sloužit jako zpětná vazba informující o spouštění aplikace.

Splash screen je dostupný až od verze WPF 3.5 SP1

Studentý vs. teplý start

U .NET aplikací se můžete setkat s pojmy studený a teplý start. Tzv. studený je první start .NET aplikace, kdy je potřeba načíst potřebné .NET knihovny z disku do paměti. Knihovny se načtou při spuštění první .NET aplikace a přetrvávají zde až do restartu nebo hibernace počítače. Teplý start je každý další start .NET aplikace, při kterém jsou už knihovny načtené v paměti. Studený start aplikace je kvůli načítání a inicializaci knihoven podstatně delší.

Splash screen

Jako splash screen můžete použít pouze obrázek. Podporované jsou standardní formáty jako bmp, gif, jpg či png. V případě png můžete použít i průhledný obrázek, naopak animovaný gif podporovaný není.

Snažte se použít co nejmenší obrázek pro splash screen. Otevření několika megabajtového obrázku může trvat déle než spuštění samotné aplikace. Ze stejného důvodu nedoporučuji používat bmp formát, který data nekomprimuje.


Implementace

Splash screen ve WPF můžeme implementovat dvěma způsoby:

1. Build Action

Nejjednodušší je přidání obrázku do projektu a nastavení build action na "splash screen". To zajistí zobrazení obrázku po startu aplikace a automatické zavření, jakmile se aplikace načte.




2. třída SplashScreen

Druhá možnost je použití třídy SplashScreen. Zde můžeme určit, kdy se splash screen zobrazí, případně zmizí.
  private void Application_Startup(object sender, StartupEventArgs e)
  {
      SplashScreen splash = new SplashScreen("/Images/SplashScreen.png");

      // true = autoClose
      // false = requires to call Close() to close the splash screen
      splash.Show(false);   
  }

Download


WpfSplashScreen.zip - Demo zdrojové kódy

WpfSplashScreen.exe - Demo spustitelný exe
 
8/13/2009


)
Komentáře
(
Vaše jméno
Vaše webová stránka
Povolené tagy jsou [code=C#]...[/code] pro zvýraznění C# kódu a [code=XML]...[/code] pro XML a XAML
Aleš Šturala @ 2007 - 2009