必威电竞|足球世界杯竞猜平台

XAML
來源:互聯(lián)網(wǎng)

XAML是eXtensible Application Markup Language的英文縮寫,相應的中文名稱為可擴展應用程序標記語言,它是微軟為構(gòu)建應用程序用戶界面而創(chuàng)建的一種新的描述性語言。XAML提供了一種便于擴展和定位的語法來定義和程序邏輯分離的用戶界面,而這種實現(xiàn)方式和ASP.NET中的"代碼后置"模型非常類似。XAML是一種解析性的語言,盡管它也可以被編譯。它的優(yōu)點是簡化編程式上的用戶創(chuàng)建過程,應用時要添加代碼和配置等。

簡介

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

XAML的發(fā)音為"Zamel"。雖然XAML包含了許多新規(guī)則、元素和語法,但是我并不認為學習它是一個折磨人的過程。只要讀者稍微具備一些HTML基礎(chǔ)知識,就可以快速地掌握XAML中的大部分內(nèi)容。

優(yōu)點

XAML簡化了.Net Framework 3.0編程模式上的用戶界面創(chuàng)建過程,使用XAML開發(fā)人員可以對WPF程序的所有用戶界面元素(例如文本、按鈕、圖像和列表框等)進行詳細的定置,同時還可以對整個界面進行合理化的布局,這與使用HTML非常相似。但是由于XAML是基于XML的,所以它本身就是一個組織良好的XML文檔,而且相對于HTML,它的語法更嚴謹、更明確。預計以后大部分的XAML都可由相應的軟件自動生成,就如同我們現(xiàn)在制作一個靜態(tài)頁面時,幾乎不用編寫任何HTML就可以直接通過Adobe Dreamweaver軟件生成一個美觀的頁面。但是最初通過手動編寫XAML代碼將是一次絕佳的學習體驗,雖然實現(xiàn)的過程繁雜了些,但是將加深您對XAML語法和各個元素的理解。

大多數(shù)的WPF程序可能同時包含程序代碼和 XAML。我們可以使用XAML定義應用程序的初始界面,而后才編寫相應的功能實現(xiàn)代碼。我們可以將邏輯代碼直接嵌入到一個XAML文件中,也可以將它保留在一個單獨的文件中。實際上,能夠用XAML實現(xiàn)的所有功能我們都可以使用程序代碼來完成。因此,我們根本無需使用任何的XAML就可以創(chuàng)建一個完好的WPF程序。一般來說,程序代碼的優(yōu)勢在于流程處理和邏輯判斷,而不是界面的構(gòu)建上。而XAML則是集中關(guān)注于界面的編程,我們可以將它和其它的.NET語言配合使用,從而構(gòu)建出一個功能完善、界面美觀的WPF程序。XAML是一種純正的、用來描述用戶界面構(gòu)成元件和編排方式的標記語言。盡管有部分的XAML語法具備程序設(shè)計語言的特性(例如XAML中的Trigger和TRansform),但是XAML并不是一種用于程序設(shè)計的語言,它的功能也不是為了執(zhí)行應用程序邏輯。

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

新功能

微軟Build 2013發(fā)布了一些已經(jīng)被添加到Windows 8.1中的XAML新功能。

??Hub控件

??命令欄

??彈出(Flyout)控件

??日期/時間選擇控件

??取消StandardStyles.xaml

不是HTML

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

XAML是可擴展的,正如它的名字指明的那樣。開發(fā)人員可以創(chuàng)建自定義的控件、元素和函數(shù)來擴展XAML。而且由于XAML各元素在本質(zhì)上就是WPF類的映射,所以開發(fā)人員可以很輕松地使用面向?qū)ο蟮募夹g(shù)對XAML元素進行擴展。也就是說我們可以開發(fā)一些自定義控件和組合元素,并將它公開給用戶界面設(shè)計人員和其它的開發(fā)人員使用。

XAML、Windows Presentation Foundation 和微軟 .NET Framework3.0 XAML 是 Microsoft? Windows Presentation Foundation (WPF) 的一部分。WPF 是 Microsoft? .NET Framework 3.0 中處理基于 Windows 的應用程序或基于 Web瀏覽器的客戶端應用程序的可視外觀的一類功能。基于 WPF 的應用程序可以在 Windows Vista上運行,也可以在安裝了 Microsoft .NET Framework 3.0(如果是基于 Web 瀏覽器的客戶端應用程序,還需要安裝Internet Explorer 7.0)的早期版本的 Windows 上運行。

應用

WPF 借助 XAML 來利用標記而不是編程語言(如 C?)來構(gòu)造精美逼真的用戶界面 (UI)。您可以通過定義控件、文本、圖像、形狀、動畫等各種元素,完全采用 XAML 來制作詳盡的 UI 文檔。由于 XAML 是聲明性語言(類似于 HTML),因此如果需要向應用程序中添加運行時邏輯,則需要添加代碼。例如,如果應用程序僅使用 XAML,您不僅可以創(chuàng)建并動態(tài)顯示 UI 元素,還可以對這些元素加以配置令其以受限方式響應用戶輸入(通過使用事件觸發(fā)器)。但是,在不添加代碼的情況下,該應用程序?qū)⒉荒軋?zhí)行和響應計算,也不能自行創(chuàng)建新的 UI 元素。XAML應用程序的代碼存儲在不同于 XAML 文檔的單獨文件中。這種將 UI 設(shè)計與基礎(chǔ)代碼相脫離的方式,使得開發(fā)人員和設(shè)計人員能夠更加密切地合作完成同一個項目,而不會延誤各自的進度。

作用

在Silverlight體系結(jié)構(gòu)和 Silverlight 應用程序開發(fā)過程中,XAML 發(fā)揮著多種重要作用:

1、XAML 是用于聲明 Silverlight UI 及該 UI 中元素的主要格式。通常,項目中至少有一個 XAML 文件表示應用程序中用于最初顯示的 UI 的"頁面"比喻。其他 XAML 文件可能聲明其他用于導航 UI 或模式替換 UI 的頁。另外一些 XAML 文件可以聲明資源,如模板或其他可以重用或替換的應用程序元素。

2、XAML 是用于聲明樣式和模板的格式,這些樣式和模板應用于 Silverlight 控件和 UI 的邏輯基礎(chǔ)。您可以執(zhí)行此操作來模板化現(xiàn)有控件,或作為為控件提供默認模板的控件作者來執(zhí)行此操作。

3、XAML 是用于為創(chuàng)建 Silverlight UI 和在不同設(shè)計器應用程序之間交換 UI 設(shè)計提供設(shè)計器支持的常見格式。最值得注意的是,Silverlight 應用程序的 XAML 可在 Expression Blend 產(chǎn)品與Visual Studio之間互換。

4、WPF 還在 XAML 中定義其 UI。就與 WPF XAML 的關(guān)系而言,Silverlight XAML 使用共享的默認 XAML 命名空間,且對于其 XAML 詞匯具有近似的WPF子集關(guān)系。因此,XAML 為 UI 在 Silverlight 與 WPF 之間遷移提供了一種有效途徑,這樣,您就可以針對 Silverlight 執(zhí)行 UI 設(shè)計,然后幾乎無需重新設(shè)計 UI 圖面即可將此相同設(shè)計遷移到 WPF。

5、Silverlight XAML 定義 UI 的可視外觀,而關(guān)聯(lián)的代碼隱藏文件定義邏輯。可以對 UI 設(shè)計進行調(diào)整,而不必更改代碼隱藏中的邏輯。就此作用而言,XAML 簡化了負責主要可視化設(shè)計的人員與負責應用程序邏輯和信息設(shè)計的人員之間的工作流。

6、由于支持可視化設(shè)計器和設(shè)計圖面,因此,XAML 支持在早期開發(fā)階段快速構(gòu)造 UI 原型,并在整個開發(fā)過程中使設(shè)計的組成元素更可能保留為代碼訪問點,即使可視化設(shè)計發(fā)生了巨大變化也不例外。

根據(jù)您自己在開發(fā)過程中所扮演的角色,您可能無法廣泛地與 XAML 語言或 XAML 語法交互。您與 Silverlight XAML 交互的程度還取決于您所使用的集成開發(fā)環(huán)境、是否使用交互式設(shè)計環(huán)境功能(如工具箱和屬性編輯器)以及 Silverlight 應用程序的范圍和目的。盡管如此,在開發(fā) Silverlight 應用程序的過程中,您還是可能能夠使用基于文本的編輯器在元素級編輯 Silverlight XAML 文件。本主題旨在使您了解 XAML 語言和 XAML 語法的具體信息。此外,本主題還著重介紹 XAML 可能特定于 Silverlight 的用法和行為的某些方面(與其他利用 XAML 的框架(如 WPF 或 WCF)相對照)。使用此信息,您應能夠放心地以文本表示形式編輯用于 Silverlight 的 XAML,當此 XAML 文件由工具、標記編譯操作或 Silverlight 運行時加載應用程序使用時,保持其聲明和目的的有效性。

代碼

在 Expression Blend 中,任何給定文檔的 XAML 均存儲在 .xaml 文件中。如果 XAML 文檔有相應的基礎(chǔ)代碼,該代碼將存儲在文件名相同但另行添加 .cs 或 .vb 擴展名的文件中。例如,如果 XAML 文檔名為“Window1.xaml”,則當代碼的編程語言C? 時,代碼隱藏文件名為“Window1.xaml.cs”。

在生成項目時,WPF分析程序?qū)⒆x取該項目的 .xaml 文件,并報告所產(chǎn)生的任何錯誤。同樣地,在 Expression Blend 中打開現(xiàn)有項目時,分析程序?qū)⒆x取項目文件夾中包含的 .xaml 文件,嘗試分析元素并在“設(shè)計”視圖中的美工板上顯示文檔。在這兩種情況下,如果分析程序遇到錯誤,將禁用美工板,并且 Expression Blend 將顯示一則錯誤消息,其中包含用于打開“XAML”視圖的鏈接,以便您糾正該錯誤。分析錯誤也會報告在“結(jié)果”面板中的“錯誤”選項卡上。

均衡作用

您可以從 微軟? Expression? 設(shè)計 中將美術(shù)資源導出為 XAML,然后將該 XAML 作為資源導入到 Expression Blend 中,以便在 Expression Blend 項目中利用這些資源。其他一些設(shè)計應用程序也提供了各種將美術(shù)資源轉(zhuǎn)換為 XAML 的工具。您可以在 Internet 上搜索受信任的站點所發(fā)布的轉(zhuǎn)換工具。

參考資料 >

生活家百科家居網(wǎng)