2009年9月4日 星期五

在WPF中加入提示畫面(Splash Screen)

Splash Screen算是相當常用的特效
比較常見於應用程式啟動時,會顯示一些版本或是著作權資訊
然後並沒有特別做什麼動作就自動漸出了
跟Android裡面的Toast還蠻像的
不過Splash Screen一般用來顯示圖片,而Toast則是文字訊息

如果是要在程式啟動時顯示Splash Screen
可以直接在想要顯示的圖檔的屬性視窗中選擇建置動作(Build Action)
選為SplashScreen即可

如果希望在使用者做出某個動作(如按下About按鈕)的時候顯示的話
那就將在該動作的事件處理函式中呼叫

private void ShowSplashScreen()
{
/// new a splash screen with resource name
SplashScreen s = new SplashScreen("img.png");

/// show the splash screen and close automatically
s.Show(true);
}

如果希望該畫面可以停留到另外動作(如使用者按下或移動滑鼠)發生時
那就將Show裡面的參數換成false
然後在停止動作的事件處理函式中呼叫

private SplashScreen ShowSplashScreen()
{
/// new a splash screen with resource name
SplashScreen s = new SplashScreen("img.png");

/// show and hold until close
s.Show(false);

/// return splash screen for stop
return s;
}

private void CloseSplashScreen(SplashScreen s, int t)
{
/// close with fade out time t in 100 ns
s.Close(new TimeSpan(t));
}

這裡的時間是漸出(fade out)持續的時間,以100ns為單位計算
所以如果需要讓漸出時間(從開始淡化到完全消失)為1秒的話
那t要傳入10,000,000才行

--
參考資料
Splash Screen in WPF 3.5 SP1

沒有留言:

張貼留言