一起學習win8應用2-通過彈出框學習下解決方案的各個文件


web技術分享網 歡迎你!

在《一起學習win8應用1》中,我們做了一個最基礎的“hello world!"程序。(通過Button的Click事件,讓TextBlock來顯示TextBox的內容)。大概了解了下,win8應用程序的一個開發流程。昨天,一朋友也想做個hello world,但是,他只是想用最簡單的方式,彈出個提醒框。結果,把他給惹急了。說是找不到MessBox了,好不容易找到了個MessageDialog,折騰了老半天就不會用。我笑了笑,就說那今天我就寫個教程吧!順便學習下,win8解決方案的一些文件。

第一,我們打開vs2012,點擊文件-新建-空白項目;

我們還是先大概看看,各個文件是做什么用的.已用紅字標明,具體以后用到會慢慢細說。

第二,在設計視圖拉兩個控件:一個Button,一個TextBlock控件,並設置相應的屬性。如圖

這邊值得注意的是,TextBlock中的Style這個屬性。它引用的是靜態資源。其實也就是我們解決方案里面那個Common文件夾里的那個standardStyles.xaml里的樣式。

這時我們可以再看下解決方案里面的App.xaml文件了。

哦,是不是有恍然大悟的感覺,原來那個標准的全局樣式,是在app中加載的。

那我們如何通過屬性,為各種控件添加和修改全局樣式屬性呢?

我們“選擇”某個控件,點擊“屬性”面板,在“雜項”找到Style,點擊最右邊的小正方形,會彈出一個框,點擊“本地資源”,進行選擇。ok,我們就可以選擇我們在StandardStyles中定義的樣式了。編輯,則是點擊對應的“編輯資源”或“轉換為新資源” 按鈕。

第三,我們給按鈕添加點擊事件;

其實,這樣一個最簡單的彈出框就做好了。可能很多人,會覺得疑惑,包括我那個瞎搞了半天都搞不定彈出框的朋友。我想主要是因為這邊出現了async跟await這兩個關鍵字,可能,我是說可能,有些同學還搞不清var這個關鍵字。如果是這樣的話,那很遺憾的告訴這部分人,要趕緊補功課了。fw4.5都出來了,何必一直停留在2.0的時代呢?

我們先來看看運行結果:

 

現在彈出框我們可以采用這種方式,當然,還有更好的。在這邊我們看到了MessageDialog這個類,當然,別忘了要引用命名空間Windows.UI.Popups

MessageDialog有兩個構造函數,分別是只傳內容和傳了內容跟標題的,並且它提供了title和comment屬性,我們可以讓彈出框的標題跟內容重新賦值,就像例子那樣。

這些是不是都跟MessBox沒啥兩樣。

但MessageDialog沒有像MessBox的show方法,取而代之的是showAsync方法。

// 摘要:
//     開始顯示對話框的異步操作。
// 返回結果:
//     表示異步操作的對象。有關異步模式的更多信息,請參見 Windows 運行時中的異步編程。
 public IAsyncOperation<IUICommand> ShowAsync();

這也是為什么我們要用await跟async關鍵字的原因了。異步編程對於性能上的提高還是有很大用處的,這邊大家可以先自己查點資料。

值得我們注意的是:await關鍵字在方法體中使用,您千萬別忘了在方法聲明中使用下async。

很多人這樣寫,所以,一直報錯。(包括我那個朋友)這邊是需要在void前面加個async的,而且async也只能在void方法中使用。

默認的彈出框是會帶有一個關閉按鈕的,當然,我們也可以通過代碼來自定義按鈕。

這邊我們用Commands.Add來添加“確定”和“取消”按鈕,並進行事件的綁定。我們並對按鈕進行設置默認命令索引。

“確定”和“取消”按鈕,既然是事件,我們就可以采用lamda表達式來進行操作。

現在我們來看看最后的運行結果:

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM