轉(zhuǎn)帖|其它|編輯:郝浩|2011-08-17 15:00:52.000|閱讀 643 次
概述:WPF的運(yùn)行時(shí)XAML解析器公開(kāi)為兩個(gè)類(lèi),它們都位于System.Windows.Markup命名空間中:XamlReader和 XamlWriter,而且它們的API已經(jīng)再簡(jiǎn)單不過(guò)了,XamlReader包含了一些對(duì)靜態(tài)Load方法的重載,而XamlWriter包含了一些對(duì)靜態(tài)Save方法的重載.
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
WPF的運(yùn)行時(shí)XAML解析器公開(kāi)為兩個(gè)類(lèi),它們都位于System.Windows.Markup命名空間中:XamlReader和XamlWriter,而且它們的API已經(jīng)再簡(jiǎn)單不過(guò)了,XamlReader包含了一些對(duì)靜態(tài)Load方法的重載,而XamlWriter包含了一些對(duì)靜態(tài)Save方法的重載.
1、XamlReader
XamlReader.Load方法的設(shè)置將解析XAML,創(chuàng)建合適的.NET對(duì)象,然后返回一個(gè)根元素的實(shí)例.因此,如果在當(dāng)前目錄下有一個(gè)XAML文件叫作MyWindow.xaml,它包含一個(gè)Window對(duì)象,它包含了一個(gè)Window對(duì)象作為根結(jié)點(diǎn),那么可以使用下面代碼來(lái)加載和獲得Window對(duì)象:
這個(gè)情況下,Load是與FileStream(位于System.IO命名空間中)一起調(diào)用的,在Load返回之后,整個(gè)XAML文件的對(duì)象層級(jí)將在內(nèi)存中被實(shí)例化,因此就不再需要XAML.在前面的代碼,退出usiing代碼塊之后FileStream將被立即關(guān)閉,既然現(xiàn)在已經(jīng)有一個(gè)根元素的實(shí)例存在,就可以利用適當(dāng)的內(nèi)容屬性或者集合屬性來(lái)獲得子元素.下面代碼假設(shè)Window有一個(gè)類(lèi)為StackPanel的子元素,StackPanel的第5個(gè)子對(duì)象是一個(gè)OK Button(XamlReader定義了LoadAsync實(shí)例方法用于異步加載和解析XAML內(nèi)容.例如,在加載大文件或者網(wǎng)絡(luò)文件時(shí),可以使用)
2、對(duì)于動(dòng)態(tài)皮膚場(chǎng)景來(lái)說(shuō)運(yùn)行時(shí)加載和解析XAML是有意義的,如果要編譯一個(gè)XAML文件并將它與過(guò)程式代碼混合,第一步要做的就是為XAML文件的根元素指定一個(gè)子類(lèi)個(gè)XAML文件,并把x:Class作為根
元素,同時(shí)創(chuàng)建一個(gè)具有部分類(lèi)定義的代碼隱藏源文件,最后把兩者連接起來(lái),這樣代碼構(gòu)建
(build)才能順利進(jìn)行。
如果你是一個(gè)MSBuild的用戶(hù),并且想通過(guò)理解項(xiàng)目文件中的內(nèi)容來(lái)使用代碼隱藏
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:CSDN