原文地址:
http://channel9.msdn.com/Series/Windows-Phone-8-Development-for-Absolute-Beginners/Part-4-Introduction-to-XAML
系列地址:http://channel9.msdn.com/Series/Windows-Phone-8-Development-for-Absolute-Beginners
原始碼: http://aka.ms/absbeginnerdevwp8 PDF版本: http://aka.ms/absbeginnerdevwp8pdf
在本課中,我將討論在第一課中編寫的SoudBoard應用程式的XAML文法。希望您注意到了我們編寫的XAML是如何影響手機預覽窗格中我們見到的內容。通過查看XAML來理解絕對基本的XAML是相對簡單的,但是我想指出一些並非一眼就能看出的特性和功能。
概要地講本課的計劃是:
我們將通過與C#的比較來討論XAML的目的和性質
我們將討論XAML的特殊特性,語言的一些隱藏功能,這些功能並非看一眼就顯而易見。
我的目標是:當本課結束時您將具備足夠的理解我們在本系列其餘部分編寫的XAML的知識,並且在我試圖解釋前就能夠基本猜出它的作用。
1. XAML是什麼?
在上一課我提到XAML的外觀與HTML類似。這並非偶然。XAML其實就是XML(可延伸標記語言 (XML)the eXtensible Markup Language)。我待會兒會解釋它們的關係,但是概要地講,XML和HTML非常相似,它們具有共同的祖先。HTML用於構建web頁面文檔,而XML則更通用。此處“通用”的意思是您可以針對設想的任意用途來使用它,並且您可以定義元素和特性(attributes)的名稱來滿足您的需要。過去開發人員利用XML來儲存應用設定,在兩個不同的系統之間傳輸資料。為了使用XML,您需要定義架構(schema),它對元素和元素特性的名稱進行聲明。架構類似於一個合約(contract)。每個人,不管他是XML的生產者還是XML的使用者都遵守合約的規定以在相互間進行通訊。因此架構是XML的重要組成部分。請記住上述分析,待會兒我們還會對他進行討論。
XAML是XML的一種特殊用法。很顯然,我們已經看到XAML與定義手機的使用者介面有關。所以在這點上感覺它非常像HTML。但是有一個很大的區別,XAML實際上用於建立類的執行個體和設定屬性(properties)的值。例如,在前面的課程中我們在XAML中定義了一個按鈕:
上述代碼大致等同於以下的C#代碼:
我已將上述C#代碼添加到MainPage類的建構函式中。我待會兒會討論MainPage.xaml和MainPage.xaml.cs之間的關係,但是我們已經看到如何在MainPage.xaml.cs中通過編寫程式方式的C#代碼來定義行為。這裡我僅僅編寫了在MainPage類的新執行個體被建立時執行的代碼(通過在類的建構函式中編寫代碼來實現)。
現在我有了兩個按鈕,一個以聲明方式在XAML中定義、含有“內容Hello World”並且在單擊按鈕時會發出嘎嘎的叫聲,另一個是新建立的含有內容“Quack” 的按鈕。當我們運行應用:
查看本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/extra/