一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

閑話WPF之二(XAML概述)

 louisasea 2007-04-23

 

在我開始看WPF文檔開始的幾天里,腦子里形成了一種錯誤的想法:WPF不就是XAML碼?當時的感覺就是郁悶啦,我學習WPF還得弄這個東西。給人的第一感覺就是WPF很復雜。雖然對WPF的熟悉和了解還不是特別多,但現(xiàn)在已經(jīng)知道這確實是一種錯誤的想法。

Charles Petzold先生曾有一篇文章介紹了WPF、XAML的一些關系(The Two APIs)。文章中說明了WPF為什么很復雜:因為WPF有兩套API,一套用于普通的編碼訪問(比如C#、VB.NET等其中.NET支持的語言。而另外一套就是基于XML的API,被稱為XAML(Extensible Application Markup Language)。

XAML實現(xiàn)UI代碼和應用程序邏輯代碼的分離。在.NET 3.0和Windows Vista中,XAML與WPF一起建立整個的UI。由于XAML是基于XML的,所以每個XAML代碼都肯定是一個完整的XML文件。XAML繼承了XML所有的定義和規(guī)則。XAML與其他XML擴展不同之處就是他所表示的意義。每個XAML元素是一個.NET CLR類?;赬ML使得我們非常容易擴展和操作XAML。利用XAML的WPF這種關系,開發(fā)人員可以單獨的設計漂亮的UI,也許真正的美工會更多的出現(xiàn)。我們可以把程序邏輯寫在單獨的文件或者是內(nèi)聯(lián)嵌入到XML文件。 

在XAML中使用得最多的XML功能應該有三個:命名空間、屬性和子元素。 

先看一個簡單的XAML的例子:

<Window x:Class="FirstXAML.Window1"

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

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

    Title="FirstXAML" Height="200" Width="300"

   >

  <Canvas>

  </Canvas>

</Window>

其中的xmlns就是XML中的名字空間,在W3C中xmlns是如下定義的:

XML namespaces provide a simple method for qualifying element and attribute names used in Extensible Markup Language documents by associating them with namespaces identified by URI references.

簡單地說就是xmlns提供了一種方法把URI引用的名字空間定義為當前XML文件的元素和屬性的默認命名空間。這里表示當前這個XML文檔,也就是我們的XAML文件,它的默認的命名空間就是http://schemas.microsoft.com/winfx/2006/xaml/presentation。

然后是屬性和子元素,XML對屬性的表示除了可以用Property外,還可以用子元素,在XAML中也是如此,看一個簡單的例子:

<Button Width="6">

   <Button.Background>White</Button.Background>

</Button>

例子當中就使用了屬性和子元素兩種方式來指定屬性。其中的Width是直接用屬性表示,Background屬性是用子元素表示。在多數(shù)時候,但不是所有,你可以自由選擇這兩種表示方式之一。

XAML被編譯為BAML(Binary Application Markup Language)文件。通常,BAML文件比XAML更小,編譯后的BAML都是Pre-tokenized的,這樣在運行時能更快速的加載、分析XAML等等。這些BAML文件被以資源的形式嵌入到Assembly當中。同時生成相應的代碼(文件名稱是**.g.cs或者**.g.vb),這些代碼根據(jù)XAML元素分別生成命名的 Attribute字段。以及加載BAML的構造函數(shù)。



 

最后,關于XAML的優(yōu)點,我附上一點翻譯過來的條款,可能更直觀:

XAML除了有標記語言、XML的優(yōu)點外,還有如下一些優(yōu)點:

   用XAML設計UI更簡單

   XAML比其他的UI設計技術所需編碼更少。

   XAML設計的UI方便轉移、方便在其他環(huán)境提交。比如在Web或Windows Client。

   用XAML設計動態(tài)UI非常容易

   XAML給UI設計人員帶來新的革命,現(xiàn)在所有的設計人員不再需要.NET開發(fā)的知識同樣可以設計UI。在不遠的將來,終端用戶可以看到更漂亮的UI。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    草草草草在线观看视频| 亚洲一区在线观看蜜桃| 日韩人妻精品免费一区二区三区| 在线观看免费视频你懂的| 99精品国产一区二区青青 | 日本一二三区不卡免费| 人妻偷人精品一区二区三区不卡| 日本不卡在线视频你懂的| 久久精品国产在热亚洲| 日本道播放一区二区三区| 伊人久久青草地婷婷综合| 国产精品欧美激情在线播放| 日本精品中文字幕在线视频| 高清不卡一卡二卡区在线| 国产精品伦一区二区三区四季| 婷婷色网视频在线播放| 国产精品人妻熟女毛片av久 | 台湾综合熟女一区二区| 国产传媒高清视频在线| 好吊妞视频免费在线观看| 国产成人午夜福利片片| 99久久成人精品国产免费| 一区二区不卡免费观看免费| 国产色一区二区三区精品视频| 国产在线视频好看不卡| 日韩亚洲精品国产第二页| 亚洲男人的天堂久久a| 色鬼综合久久鬼色88| 国产精品二区三区免费播放心| 免费观看日韩一级黄色大片| 开心五月激情综合婷婷色| 韩日黄片在线免费观看| 老熟女露脸一二三四区| 日韩中文字幕在线不卡一区| 精品综合欧美一区二区三区| 又大又长又粗又黄国产| 国产综合欧美日韩在线精品| 国产视频一区二区三区四区| 亚洲欧美日本成人在线| 亚洲男人天堂网在线视频| 丰满少妇被粗大猛烈进出视频|