日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

破譯微軟Win Vista表示層Avalon之謎

[前言]:本文將先介紹 "Vista"的表示子系統(tǒng)Avalon在圖形處理方面的優(yōu)勢,然后帶您開始Avalon編程之旅 。
Avalon簡介
Avalon是什么?它其實是WinFX的表示子系統(tǒng),而WinFX則是.NET 2.0 Framework的延伸 。Avalon(阿瓦?。┦莿P爾特人傳說中的西方樂土島,據(jù)說亞瑟王及其部下死后尸體被移往該島 。本文的題目"阿瓦隆之迷"實際上借用了馬里恩·齊默·布拉德利(Marion Zimmer Bradley)的一本小說的名字 。
Avalon還是紐芬蘭群島的一個半島 。最近微軟愛用美洲北太平洋地區(qū)的地理名稱作為產(chǎn)品代號 。而Longhorn是北美洲范庫弗峰Whistler-Blackcomb 滑雪勝地的一酒吧的名字 。Whistler和Blackcomb則分別是XP和Longhorn Server的代號 。
WinFX的三大支柱
WinFX的三大支柱分別是Avalon(圖形子系統(tǒng))、WinFS(存儲子系統(tǒng))和Indigo(通信子系統(tǒng)) 。
Avalon與GDI 的區(qū)別在于,前者使用描述性模型來描述各種圖形實體:窗口、網(wǎng)頁、布局面板、向量圖形、可重用控件、動畫、3D對象和景物等,而后者采用過程化的方式 。
對象樹
Avalon應用程序的圖形輸出與GDI不同,不是按照過程化指令順序執(zhí)行的,而是用不同層次的對象及其屬性提供的 。Avalon中所有圖形場景都是由Avalon的類模型中不同層次的對象--即對象樹--構成的 。
對象樹的一個簡單實例如下:
Avalon的核心是基于圖形向量處理的渲染引擎,它負責解釋對象樹并渲染場景,它能充分發(fā)揮顯卡的性能(自由縮放、3D陰影、α混合技術、鏡面反射、動畫、視頻等) 。不過我們一步步來,先看看上面的對象樹的輸出結(jié)果:
Avalon的類模型除了有幾何圖形,還有各種控件,如edit box、label、button、combo box、check box和list control 。不過這些控件都被定義為向量圖形,所以隨意縮放時不會出現(xiàn)鋸齒 。
【破譯微軟Win Vista表示層Avalon之謎】本質(zhì)上說,用GUI元素創(chuàng)建對象樹,就可以開發(fā)出Avalon應用程序的UI(用戶界面) 。這時,對象樹常被稱為UI樹 。
一個簡單的UI樹例子:

用Avalon渲染引擎渲染之后,輸出結(jié)果如下:

由于所有UI元素都是基于向量的,面板可以隨意縮放,控件尺寸也會隨之縮放 。我們還可以很方便的修改字體屬性、邊框顏色等屬性 。
即便數(shù)據(jù)綁定也可以用描述性方式進行:您可以將控件與SQL數(shù)據(jù)庫或RSS feed等數(shù)據(jù)源聯(lián)系起來,當顯示控件時,會自動的從數(shù)據(jù)源獲得內(nèi)容,無需編寫任何過程式代碼 。
不過創(chuàng)建UI樹只是開發(fā)圖形界面的一種方式,此外還可以用XAML 。
XAML
XAML(發(fā)音為"zammel")是一種基于XML的標記語言,它也可以創(chuàng)建Avalon對象樹 。XAML是eXtensible Application Markup Language的簡稱,(XAML中的"A"不是代表"Avalon,而是"應用程序" 。這是由于XAML將來不僅用于描述Avalon場景,還可以用于.NET的對象層次結(jié)構) 。
下面是上述UI樹例子的XAML代碼:

http://schemas.microsoft.com/winfx/avalon/2005 Name="Page1">

    推薦閱讀