久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

閑話WPF之二(XAML概述)

 louisasea 2007-04-23

 

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

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

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

在XAML中使用得最多的XML功能應(yīng)該有三個(gè):命名空間,、屬性和子元素。 

先看一個(gè)簡(jiǎn)單的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.

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

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

<Button Width="6">

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

</Button>

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

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



 

最后,,關(guān)于XAML的優(yōu)點(diǎn),我附上一點(diǎn)翻譯過(guò)來(lái)的條款,,可能更直觀:

XAML除了有標(biāo)記語(yǔ)言,、XML的優(yōu)點(diǎn)外,還有如下一些優(yōu)點(diǎn):

   用XAML設(shè)計(jì)UI更簡(jiǎn)單

   XAML比其他的UI設(shè)計(jì)技術(shù)所需編碼更少,。

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

   用XAML設(shè)計(jì)動(dòng)態(tài)UI非常容易

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

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多