官术网_书友最值得收藏!

1.4 認識XAML

1.4.1 什么是XAML

在開發(fā)基于Silverlight的應用程序時,XAML語言具有舉足輕重的地位,因此掌握好XAML語言,絕對是進入Silverlight世界的一條捷徑。XAML是eXtensible Application Markup Language的縮寫,翻譯為中文是“可擴展應用程序標記語言”,它是一種聲明性語言,可以使用聲明性XAML標記創(chuàng)建可見UI元素。然后可以使用單獨的代碼隱藏文件響應事件和操作使用XAML聲明的對象。如下面的示例代碼,聲明了一段最簡單的XAML:

XAML

      <UserControl x:Class="Chapter01.XAMLExample.Page"
          xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
          Width="400" Height="300">
          <Grid x:Name="LayoutRoot" Background="White">
          </Grid>
      </UserControl>

這段代碼中最外層是以UserControl開始,然后在UserControl中聲明了一個Grid元素,僅此而已,其中最重要的一點就是命名空間的聲明,如下兩行代碼:

XAML

      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

第一個聲明將整個Silverlight命名空間映射為默認命名空間,第二個聲明為XAML映射一個單獨的XML命名空間,通常將它映射到x:前綴。這兩個聲明之間的關系是:XAML是一個語言定義,而Silverlight是將XAML用作語言的一個實現(xiàn),特別要指出的是,Silverlight使用了XAML的一個嚴格子集。XAML語言指定某些語言元素,其中的每個元素都應當可以通過針對XAML命名空間執(zhí)行的XAML處理器實現(xiàn)來進行訪問。

XAML的Silverlight實現(xiàn)及其預期的編程模型通常對其自己的XAML詞匯表使用默認的XML命名空間,而對XAML命名空間的Silverlight子集中需要的標記語法使用單獨映射的前綴。按照約定,該前綴是x:,例如,若要通過分部類將全部代碼隱藏加入XAML文件,必須將該類指定為相關XAML文件的根元素中的x:Class屬性,如上述示例代碼中x:Class="Chapter01. XAMLExample.Page"。

1.4.2 XAML基本使用

本節(jié)將介紹XAML的一些基本使用,包括在XAML中聲明對象、為元素設置屬性等。

在XAML中聲明對象可以直接使用對象元素語法,使用開始標記和結束標記將對象聲明為XML元素,如下示例代碼所示,在Grid元素中聲明了一個矩形元素:

XAML

      <Grid x:Name="LayoutRoot" Background="White">
          <Rectangle></Rectangle>
      </Grid>

如果元素中沒有包含其他子元素,還可以簡寫為:

XAML

      <Grid x:Name="LayoutRoot" Background="White">
          <Rectangle/>
      </Grid>

在XAML中為元素設置屬性,有多種方式可供選擇:

使用XML特性語法

使用屬性元素語法

使用內(nèi)容元素語法

此方法列表并不表示可以使用這些方法中的任何一種來設置給定的屬性,在Silverlight中某些元素的屬性只支持其中一種方法,某些屬性可能支持多種方式的屬性設置方法。

使用XML特性語法為元素設置屬性非常簡單,如下面的示例代碼所示:

XAML

      <Rectangle Width="200" Height="100" Fill="OrangeRed">
      </Rectangle>

Silverlight中的某些元素屬性支持使用屬性元素語法來設置屬性,即在元素的屬性中再指定另外一個子元素,如下面的示例代碼所示:

XAML

      <Rectangle Width="200" Height="100">
          <Rectangle.Fill>
           <SolidColorBrush Color="OrangeRed"/>
          </Rectangle.Fill>
      </Rectangle>

某些Silverlight元素提供的屬性允許使用XAML語法時忽略該屬性的名稱,僅通過提供所屬類型的對象元素標記中的一個值來設置該屬性,稱之為“內(nèi)容元素語法”。如TextBlock元素的Text屬性,可以如下示例代碼所示設置Text屬性而無須指定Text屬性的名稱:

XAML

      <TextBlock>
          歡迎進入Silverlight世界
      </TextBlock>

當然對于該屬性也可以按如下形式指定Text屬性,效果是一樣的:

XAML

      <TextBlock Text="歡迎進入Silverlight世界">
      </TextBlock>

1.4.3 XAML特性

除了上面介紹的XAML的基本使用之外,XAML還有如下一些重要的特性:

XAML是以XML為基礎的語言擴展

XAML必須是格式良好的XML

XAML中的標記對應.NET Framework中的類型

XAML具備面向對象及繼承的特性

XAML區(qū)分大小寫

XAML中能實現(xiàn)的,通過隱藏代碼同樣可以實現(xiàn)

XAML中也會創(chuàng)建元素樹

主站蜘蛛池模板: 罗平县| 阳新县| 砀山县| 青岛市| 凤山县| 教育| 内乡县| 涿鹿县| 花垣县| 峨山| 涟水县| 秦安县| 沽源县| 霍山县| 名山县| 庆阳市| 申扎县| 维西| 江孜县| 青铜峡市| 济阳县| 陆川县| 寿光市| 缙云县| 洞头县| 平陆县| 东乌| 瓦房店市| 鲜城| 汉源县| 星子县| 娱乐| 白水县| 米易县| 邵武市| 昌黎县| 始兴县| 寻乌县| 托里县| 呼和浩特市| 犍为县|