XAML

XAML

描述性語言
XAML是eXtensible Application Markup Language的英文縮寫,相應的中文名稱為可擴展應用程序标記語言,它是微軟公司為構建應用程序用戶界面而創建的一種新的描述性語言。XAML提供了一種便于擴展和定位的語法來定義和程序邏輯分離的用戶界面,而這種實現方式和ASP.NET中的"代碼後置"模型非常類似。XAML是一種解析性的語言,盡管它也可以被編譯。它的優點是簡化編程式上的用戶創建過程,應用時要添加代碼等。[1]
    中文名:可擴展應用程序标記語言 外文名:eXtensible Application Markup Language 所屬學科: 縮寫:XAML 優點:簡化編程式上的用戶創建過程

簡介

也就是說在開發一個應用程序時,我們可以将開發工作分成開發人員和設計人員兩個團體分别進行,各自負責後台程序代碼邏輯和前台程序界面的設計,這樣就使得開發人員和設計人員之間的協作更通暢,也極大地發揮了他們的專長。

XAML的發音為"Zamel"(有些人讀做"zammel"),筆者經常開玩笑地将其讀成"折磨"。雖然XAML包含了許多新規則、元素和語法,但是我并不認為學習它是一個折磨人的過程。隻要讀者稍微具備一些HTML基礎知識,就可以快速地掌握XAML中的大部分内容。

如今在WPF的官方網站上已經提供了一些很實用的工具,可以将其他格式的圖形文件轉換為XAML文件的形式。例如我們就可以将3DMax制作出的3D動畫轉換為XAML,這樣WPF程序就可以直接通過轉換好的XAML文件産生和3DMax制作出的3D動畫相一緻的效果。

優點

XAML簡化了.Net Framework 3.0編程模式上的用戶界面創建過程,使用XAML開發人員可以對WPF程序的所有用戶界面元素(例如文本、按鈕、圖像和列表框等)進行詳細的定置,同時還可以對整個界面進行合理化的布局,這與使用HTML非常相似。但是由于XAML是基于XML的,所以它本身就是一個組織良好的XML文檔,而且相對于HTML,它的語法更嚴謹、更明确。

預計以後大部分的XAML都可由相應的軟件自動生成,就如同我們現在制作一個靜态頁面時,幾乎不用編寫任何HTML代碼就可以直接通過Dreamweaver軟件生成一個美觀的頁面。但是最初通過手動編寫XAML代碼将是一次絕佳的學習體驗,雖然實現的過程繁雜了些,但是将加深對XAML語法和各個元素的理解。

大多數的WPF程序可能同時包含程序代碼和XAML。我們可以使用XAML定義應用程序的初始界面,而後才編寫相應的功能實現代碼。我們可以将邏輯代碼直接嵌入到一個XAML文件中,也可以将它保留在一個單獨的文件中。實際上,能夠用XAML實現的所有功能我們都可以使用程序代碼來完成。

因此,我們根本無需使用任何的XAML就可以創建一個完好的WPF程序。一般來說,程序代碼的優勢在于流程處理和邏輯判斷,而不是界面的構建上。而XAML則是集中關注于界面的編程,我們可以将它和其它的.NET語言配合使用,從而構建出一個功能完善、界面美觀的WPF程序。XAML是一種純正的、用來描述用戶界面構成元件和編排方式的标記語言。盡管有部分的XAML語法具備程序設計語言的特性(例如XAML中的Trigger和TRansform),但是XAML并不是一種用于程序設計的語言,它的功能也不是為了執行應用程序邏輯。

微軟推薦XAML被編譯成BAML(Binary Application Markup Language-二進制語言程序标記語言)。XAML和BAML都可以被WPF解析,并且将以一種和HTML相似的方式進行界面的呈現。但是和HTML不同的是,XAML是強類型化的。也就是說,HTML會忽略那些它不能識别的元素和屬性,而XAML必須在識别所有的元素和屬性的情況下,才對頁面進行呈現。盡管在XAML中各個屬性都是以一個個的字符串(例如Background)表示的,但是這些字符串實際上代表的是WPF中的對象,隻有被WPF識别的對象才可以作為元素的屬性,所以我們說XAML是強類型化的。

新功能

微軟Build 2013發布了一些已經被添加到Windows 8.1中的XAML新功能。

Hub控件

命令欄

彈出(Flyout)控件

日期/時間選擇控件

取消StandardStyles.xaml

應用

WPF借助XAML來利用标記而不是編程語言(如C#)來構造精美逼真的用戶界面(UI)。可以通過定義控件、文本、圖像、形狀、動畫等各種元素,完全采用XAML來制作詳盡的UI文檔。由于XAML是聲明性語言(類似于HTML),因此如果需要向應用程序中添加運行時邏輯,則需要添加代碼。

例如,如果應用程序僅使用XAML,不僅可以創建并動态顯示UI元素,還可以對這些元素加以配置令其以受限方式響應用戶輸入(通過使用事件觸發器)。但是,在不添加代碼的情況下,該應用程序将不能執行和響應計算,也不能自行創建新的UI元素。XAML應用程序的代碼存儲在不同于XAML文檔的單獨文件中。這種将UI設計與基礎代碼相脫離的方式,使得開發人員和設計人員能夠更加密切地合作完成同一個項目,而不會延誤各自的進度。

均衡作用

可以從Microsoft® Expression® Design中将美術資源導出為XAML,然後将該XAML作為資源導入到Expression Blend中,以便在Expression Blend項目中利用這些資源。其他一些設計應用程序也提供了各種将美術資源轉換為XAML的工具。可以在Internet上搜索受信任的站點所發布的轉換工具。

相關詞條

相關搜索

其它詞條