DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> 什麼是XAML?
什麼是XAML?
編輯:XML詳解     

XAML是eXtensible Application Markup Language的英文縮寫,相應的中文名稱為可擴展應用程序標記語言,它是微軟公司為構建應用程序用戶界面而創建的一種新的描述性語言。XAML提供了一種便於擴展和定位的語法來定義和程序邏輯分離的用戶界面,而這種實現方式和ASP.Net中的"代碼後置"模型非常類似。也就是說在開發一個應用程序時,我們可以將開發工作分成開發人員和設計人員兩個團體分別進行,各自負責後台程序代碼邏輯和前台程序界面的設計,這樣就使得開發人員和設計人員之間的協作更通暢,也極大地發揮了他們的專長。

  提示:XAML的發音為"Zamel",筆者經常開玩笑地將其讀成"折磨"。雖然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是一種解析性的語言,盡管它也可以被編譯。微軟推薦XAML被編譯成BAML(Binary Application Markup Language-二進制語言程序標記語言)。XAML和BAML都可以被WPF解析,並且將以一種和HTML相似的方式進行界面的呈現。但是和HTML不同的是,XAML是強類型化的。也就是說,Html會忽略那些它不能識別的元素和屬性,而XAML必須在識別所有的元素和屬性的情況下,才對頁面進行呈現。盡管在XAML中各個屬性都是以一個個的字符串(例如Background)表示的,但是這些字符串實際上代表的是WPF中的對象,只有被WPF識別的對象才可以作為元素的屬性,所有我們說XAML是強類型化的。

  還有一點是我們反復強調的,XAML並不是HTML。盡管XAML在元素的聲明、程序樣式的設置和指定事件處理程序上都和HTML非常類似,但是XAML是基於XML的,它是WPF的外在表現形式。而Html主是一種標記語言,僅僅是用來為浏覽器呈現頁面內容。XAML除了用來呈現信息和請求用戶輸入等基本的功能外,它還包含了一些高級的特性,例如它提供了對動畫和3D眾多方面的支持。

  XAML是可擴展的,正如它的名字指明的那樣。開發人員可以創建自定義的控件、元素和函數來擴展XAML。而且由於XAML各元素在本質上就是WPF類的映射,所以開發人員可以很輕松地使用面向對象的技術對XAML元素進行擴展。也就是說我們可以開發一些自定義控件和組合元素,並將它公開給用戶界面設計人員和其它的開發人員使用。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved