WP開發(fā):XAML代碼創(chuàng)建及屬性設(shè)置
XAML提供了一種便于擴(kuò)展和定位的語法來定義和程序邏輯分離的用戶界面,而這種實(shí)現(xiàn)方式和ASP.NET中的"代碼后置"模型非常類似。XAML是一種解析性的語言,盡管它也可以被編譯。它的優(yōu)點(diǎn)是簡化編程式上的用戶創(chuàng)建過程,應(yīng)用時(shí)要添加代碼等。
用文本編輯器打開一個(gè)XAML文件,會(huì)發(fā)現(xiàn)一個(gè)XAML文件只有一個(gè)元素作為根,這個(gè)根是應(yīng)用程序整個(gè)運(yùn)行時(shí)的對(duì)象圖。在這個(gè)根下,可以采用3種方式來聲明對(duì)象以構(gòu)建一個(gè)有意義的XAML文件。接下來介紹一下XAML文件的結(jié)構(gòu)和對(duì)象:
1.直接使用對(duì)象元素語法
如果objectName是一個(gè)需要實(shí)例化的類型名稱,納悶可以用如下代碼創(chuàng)建對(duì)象:
- <objectName>
- </objectName>
一般一個(gè)對(duì)象還包括其他對(duì)象,那么可以這樣表示:
- <objectName>
- <otherobjectName>
- </otherobjectName>
- </objectName>
為了方便,也可以省略成如下形式:
- <objectName>
- <otherobjectName/>
- </objectName>
2.使用屬性語法設(shè)置屬性
如果objectName是要實(shí)例化的對(duì)象,propertyName是要設(shè)置的屬性名稱,propertyValue是要設(shè)置的屬性的值。那么應(yīng)該使用的代碼如下所示:
- <objectName propertyName="propertyValue".../>
或者:
- <objectName propertyName="propertyValue">
- ...<-element children-->
- </objectName>
3.標(biāo)記擴(kuò)展
標(biāo)記擴(kuò)展是一個(gè)XAML屬性語法,采用花括號(hào)({和})表示標(biāo)記擴(kuò)展。此方法可以講屬性值不僅僅看做一段字符或者文本,分析器會(huì)調(diào)用適用該特定標(biāo)記擴(kuò)展的代碼,從而在標(biāo)記中構(gòu)造對(duì)象。
這種方法被廣泛用于數(shù)據(jù)綁定上,比如:
- <Grid x>:Name="LayoutRoot"Background="White">
- <ComboBox ItemsSource="{Binding ElementName=LayoutRoot}"/>
- </Grid>
以上代碼將ComboBox的Itemssource屬性的值綁定為Layoutroot。