一般一個軟件運行之前都會有一個閃屏界面,稱之爲SplashScreen。下面介紹製作啓動界面的方法。
1.SplashScreen類
WPF中提供了SplashScreen這樣一個類,可以用於製作啓動界面。這種方法似乎只能顯示一張圖片,具體沒有深入研究,我用的不是這種方法。
MSDN 這裏提供了一個使用SplashScreen的簡單說明。關於這個類的一些細節
這裏 有一篇文章做了一些說明。大家可以研究一下。
2.啓動界面做主程序啓動+事件回調
這個項目的主要思想是將SplashWindow作爲主程序啓動。在裏面創建了一個MainWindow的對象並綁定一個readytoshow的事件。在事件觸發之前,splashwindow裏的dispathertimer會不斷溢出並執行splashAnimationTimer_Tick以更新控件顯示的內容。當readytoshow事件觸發後調用m_mainWindow_ReadyToShow將主窗口顯示出來。效果圖如下
上圖是程序啓動前的啓動界面,有幾個動態的點兒。
上圖是mainwindow啓動之後的界面。
3.主窗口做主程序啓動
在2中的方法splashwindow是不能關閉的,因爲他是主程序,他的關閉代表主程序退出。最多將可見性設爲不可見但依然佔用着內存。因此最後我還是決定在主窗口初始化控件之後創建啓動界面。在mainwindow的構造函數中添加了如下的代碼
this.InitializeComponent();
//調用splashscreen
Splash SplWnd = new Splash();
SplWnd.ShowDialog();
其中Splash就是我設計的啓動界面。這種實現方式的好處是啓動界面可以被銷燬。
對xaml文件和C#不太熟悉的朋友建議先做一些初步的瞭解再閱讀相應的代碼。我的建議是expression blend和VS同時打開你的項目,這樣在任意一個開發環境中更改了項目都可以自動更新到另一個開發環境,一個用於界面設計與調整主要針對xaml文件,另一個編寫c#代碼,針對.cs文件。程序的啓動界面如下圖所示。
說明
感覺寫文章還是挺難的,因爲想說清楚一件事挺難的,有時不明深淺,很多地方不知說到什麼程度爲好,如果讀者朋友有什麼建議可以留言。我盡力改正不足。