智能家居GUI設計 ---- 啓動界面設計(第4篇)

一般一個軟件運行之前都會有一個閃屏界面,稱之爲SplashScreen。下面介紹製作啓動界面的方法。

1.SplashScreen類

WPF中提供了SplashScreen這樣一個類,可以用於製作啓動界面。這種方法似乎只能顯示一張圖片,具體沒有深入研究,我用的不是這種方法。MSDN 這裏提供了一個使用SplashScreen的簡單說明。關於這個類的一些細節這裏 有一篇文章做了一些說明。大家可以研究一下。

2.啓動界面做主程序啓動+事件回調

這種方法就是創建兩個窗口,一個用於做主界面,另一個用於做啓動界面。啓動界面作爲主程序。同樣在 MSDN 這裏提供了一個簡單的示例。這個示例已經足夠說明問題。我用VS2010創建了一個類似的項目上傳到了百度雲。鏈接: http://pan.baidu.com/s/1hs9Opzm 密碼: 8gxa 。感興趣的可以下載看一下。
這個項目的主要思想是將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就是我設計的啓動界面。這種實現方式的好處是啓動界面可以被銷燬。
在其.cs文件中我使用了一個定時器。一定時間之後這個界面會關閉。當然目前這個界面還沒有太多的用途。以後可能會在裏面做一些初始化的工作。啓動界面部分的代碼我也上傳到百度雲。鏈接:http://pan.baidu.com/s/1eS5iHgQ 密碼: kfyv
對xaml文件和C#不太熟悉的朋友建議先做一些初步的瞭解再閱讀相應的代碼。我的建議是expression blend和VS同時打開你的項目,這樣在任意一個開發環境中更改了項目都可以自動更新到另一個開發環境,一個用於界面設計與調整主要針對xaml文件,另一個編寫c#代碼,針對.cs文件。程序的啓動界面如下圖所示。

說明

感覺寫文章還是挺難的,因爲想說清楚一件事挺難的,有時不明深淺,很多地方不知說到什麼程度爲好,如果讀者朋友有什麼建議可以留言。我盡力改正不足。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章