XAML——Vista標記語(yǔ)言
在A(yíng)valon中,你使用XAML標記語(yǔ)言來(lái)建立應用程序的UI。使用XAML建立UI的過(guò)程與建立HTML頁(yè)面的過(guò)程相似。你使用標記來(lái)呈現(render)那些希望顯示在頁(yè)面上的控件。XAML與HTML不同,它是基于XML的,因此你必須確保XAML頁(yè)面嚴格地遵循XML的規則,例如元素(element)和屬性(attribute)的名稱(chēng)是大小寫(xiě)敏感的,必須恰當地為屬性提供值,等等。
XAML中的每個(gè)元素都被映射為一個(gè)類(lèi),屬性(attribute)則被映射為屬性(property)。編譯XAML應用程序的時(shí)候,UI被轉換為對象模型(
object-model)代碼并使用局部(partial)類(lèi)與后臺代碼組合在一起。因此,除了使用XAML生成UI之外,你還可以使用代碼編程來(lái)建立UI。在本文后面我將為你解釋后臺代碼的使用方法。
目前的WinFX SDK不支持任何用于建立XAML UI的可視化編輯器,但是毫無(wú)疑問(wèn),微軟不久就會(huì )發(fā)布一個(gè)。到時(shí)候你就可以手動(dòng)編寫(xiě)XAML頁(yè)面了。與WinFX SDK一起提供的XAMLPad編輯器允許你快速地建立和測試那些用XAML建立的用戶(hù)界面。
載入XAMLPad的步驟是“開(kāi)始->程序->微軟WinFX SDK ->工具-> XAMLPad”。
XAMLPad編輯器窗口被分成兩個(gè)面板:你在下面的面板中輸入XAML代碼,上面的面板將根據你輸入的XAML代碼實(shí)時(shí)地顯示UI。XAMLPad易于使用,不需要你編譯?,F在我將介紹少量的簡(jiǎn)單練習內容,用于演示Avalon可以建立的不同類(lèi)型的應用程序。
我們開(kāi)始建立示例應用程序,在XAMLPad中輸入下面的代碼:
<StackPanel Background="LightBlue" xmlns="http://schemas.microsoft.com/winfx/avalon/2005"> <Button Name="Button1" Width="100" HorizontalAlignment="Left" Margin="10,10,10,5"> This is a button </Button> <TextBlock HorizontalAlignment="Left" Margin="10,5,10,5"> This is a text block </TextBlock> <TextBox Name="Button1" Width="200" HorizontalAlignment="Left" Margin="10,5,10,5"> This is a textbox </TextBox> </StackPanel> |
輸入完成以后,你將看到XAMLPad呈現的UI(圖1所示)。
圖1:呈現UI的 XAMLPad。XAMLPad上面的面板實(shí)時(shí)地呈現下面的面板中輸入的代碼。 |
如果XAML代碼中有錯誤,代碼將會(huì )顯示為紅色,錯誤信息會(huì )出現在屏幕底部。
現在仔細查看一下你剛剛輸入的代碼。首先,StackPanel元素處理頁(yè)面的布局,同時(shí)作為其它控件(例如按鈕和文本框)的容器。StackPanel控件把自己所包含的控件排列成一條線(xiàn),要么水平排列,要么垂直排列。在默認情況下,對齊方式是垂直的,也就是一個(gè)控件在另外一個(gè)控件的上面(圖1所示)。如果要水平地排列控件,只需要簡(jiǎn)單地把StackPanel元素的Orientation屬性設置為“Horizontal”(圖2所示)。
圖2:水平排列控件。 通過(guò)把StackPanel 元素的Orientation屬性設置為Horizontal,還可以改變控件默認的垂直排列方式。 |
Button元素在頁(yè)面上顯示一個(gè)按鈕。在默認情況下,按鈕的寬度剛剛能夠容納你所設置的文本(使用該元素的文本內容設置)。但是,你可以通過(guò)設置Width屬性手動(dòng)地調整按鈕控件的寬度。你可以使用HorizontalAlignment屬性來(lái)調整的按鈕元素的位置。Margin(頁(yè)邊空白)屬性在控件上設置了一個(gè)不可見(jiàn)的包裝,這樣就保證了控件之間有最小的距離,因此避免了控件偶然的“重疊”(圖3所示)。Margin屬性的值按次序設置——分別是“左、上、右、下”。
圖3:使用Margin屬性。 按鈕控件被“空白”包圍著(zhù),可以防止其它控件被放置得過(guò)于靠近。 |
TextBlock元素在頁(yè)面上顯示標簽(平面文本內容不能被選中或改變),TextBox控件在頁(yè)面上顯示文本框(用戶(hù)可修改的文本)。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。