- Silverlight 2完美征程
- 李會軍著
- 1117字
- 2019-01-10 14:27:09
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)建元素樹
- GNU-Linux Rapid Embedded Programming
- 程序設計缺陷分析與實踐
- Dreamweaver CS3網(wǎng)頁設計與網(wǎng)站建設詳解
- ROS機器人編程與SLAM算法解析指南
- 自動化控制工程設計
- Python Algorithmic Trading Cookbook
- AWS Certified SysOps Administrator:Associate Guide
- 網(wǎng)站前臺設計綜合實訓
- Salesforce Advanced Administrator Certification Guide
- 電氣控制與PLC原理及應用(歐姆龍機型)
- 從零開始學Java Web開發(fā)
- 一步步寫嵌入式操作系統(tǒng)
- HBase Essentials
- Hands-On Business Intelligence with Qlik Sense
- 算法設計與分析