自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

體驗Visual Studio 2010中WPF 4相關功能

開發(fā) 后端
本文將介紹Visual Studio 2010中WPF 4的相關功能,包括圖形、文本堆棧等等內(nèi)容,希望能對大家了解Visual Studio 2010有所幫助。

在Visual Studio 2010中有一部分是對WPF 4的支持,本文將介紹這些核心組件以及功能,同時還包括Windows7下的一些開發(fā),希望對大家有所幫助。

WPF 4的改進

WPF (Windows Presentation Foundation)是.NET框架的核心組件之一,允許開發(fā)人員打造豐富并且與眾不同的Windows客戶端應用。WPF 4包含了在生產(chǎn)力,性能和功能方面的重大改進,特別是在控件(Controls), XAML, 文本(Text), 圖形(Graphics), Windows 7集成(多點觸摸(multitouch), 任務欄集成等), 核心基礎(Core Fundamentals), 以及部署這幾個方面。 本文是我在接下來的幾個月里介紹其中一些改進和新特性的若干個貼子的第一篇。

不久我還將另寫專文討論Visual Studio 2010中的WPF 和Silverlight設計器中的一些重大進步,該設計器還包含了一堆改進。

控件

控件

可用于打造富客戶端的控件

WPF 4添加了各種新控件,使得客戶端豐富的行業(yè)(line-of-business)應用的打造更加容易,也更快。新的也更豐富的控件集包括了象DataGrid, DatePicker, 和 Calendar這樣的行業(yè)應用必備控件。這些新控件與它們在Silverlight中的對應控件在API和行為方面99%的兼容,允許開發(fā)人員通過在Silverlight和WPF實現(xiàn)間重用代碼,在優(yōu)化了工作流程的的同時,創(chuàng)建一個橫跨客戶端和web的一致的體驗。

訣竅袋(Bag O’ Tricks)又回來了

我們還將發(fā)布被稱為WPF訣竅袋(Bag O’ Tricks)的8個額外的控件的下載,它包括下列控件:AnimatingTilePanel, ColorPicker, InfoTextBox, ListPager, NumericUpDown, Reveal, TransitionsPresenter, TreeMapPanel。

Windows 7和Office Ribbon控件

在WPF 4發(fā)布之后不久,會推出一個新的WPF Ribbon控件供下載。它包括針對Windows 7 和 Office的皮膚,以及為終端用戶所熟悉的所有的標準Ribbon特性,包括tab(選項卡)和 group(組),動態(tài)改變大小,快速訪問工具欄(quick access toolbar),應用菜單,上下文相關選項卡(contextual tabs),鍵提示(key tips)等等。

訣竅袋

WPF Ribbon是完全可擴展的,以滿足將來版本的設計指引的變化, 今天在這里有一個包含有限特性集的CTP。

包含有限特性集的CTP

圖形(GRAPHICS)

緩存合成(Cached Composition)

< 4中的新的緩存合成(Cached>

這免去了CPU和GPU重新渲染內(nèi)容的代價,而允許GPU直接從緩存來做渲染。這個緩存理解被更新了的“臟”區(qū)域(dirty region),因此,舉個例子來說,被緩存的文本塊(textblock)中閃爍的光標,只需要在幀間重新渲染光標。甚至還有一個專門使用這些智慧緩存的新Brush,實際上,就是一個性能超佳的的VisualBrush。

像素著色器(Pixel Shader)3的支持

WPF 4是建立在一個非常受歡迎的,最初是在 WPF 3.5 SP1中引進的著色器效果(ShaderEffect)支持之上的,允許應用程序使用像素著色器(Pixel Shader)的第三個版本來編寫效果(Effects)。像素著色器第三個版本的著色器模型較之第二個版本,顯著地更為先進,在支持的硬件上能允許更加引人入勝的效果。

LayoutRounding (布局舍入)

WPF 4采用了UseLayoutRounding屬性,最初是在Silverlight 2中引進的。WPF的布局引擎經(jīng)常要計算亞像素的定位坐標,這會在定位于亞像素邊界的元素在多個物理像素上做平滑處理(anti-aliased,消除鋸齒)時,造成渲染假象(artifact)。

UseLayoutRounding會迫使布局引擎將元素置于整數(shù)像素(whole pixel)邊界上,從而除去由這個問題導致的大部分渲染假象,默認生成更清晰分明的界面。

界面 動畫緩動函數(shù)(Animation Easing Function)

不連續(xù)的,直線式和樣條曲線(spline)式動畫在WPF的以前版本中就支持,WPF 4引進了一個叫Easing Functions(緩動函數(shù))的新概念,允許應用程序的作者使用動畫創(chuàng)建流暢的行為。其使用方式多種多樣,譬如,創(chuàng)建一個彈跳式(springy)行為,或者添加對動畫的預期等。緩動函數(shù)可以定制動畫從開始進行到結(jié)尾的方式,內(nèi)置的緩動函數(shù)提供了很大范圍的行為,例如圓形的(circular),指數(shù)型的(exponential),有彈性的(elastic),反彈型的(bouncy)動畫進程等。其擴展性設計還允許應用程序的作者創(chuàng)建自定義的緩動函數(shù)來定義他們的動畫進程的方式。由于其之易用性,設計師可以毫不費力地創(chuàng)建自然流暢的動畫。

CleartypeHint

新的CleartypeHint附加屬性允許應用程序的作者能在許多原先是無法使用的場合啟用高質(zhì)量的Cleartype文本渲染。這樣的場合包括分層窗口中的文字,VisualBrush, DrawingBrush, 和BitmapCacheBrush中的文字,以及任何中間的渲染對象的引入會導致灰度文本渲染的地方。

文本堆棧(TEXT STACK)

新的文本渲染堆棧(Text Rendering Stack)

WPF文本渲染堆棧(text rendering stack)已被完全替換掉了,這樣的變化帶來了文本渲染的清晰度,可配置性和對國際語言支持方面的顯著改進。現(xiàn)在,新的文本堆棧支持顯示優(yōu)化的字符布局,可生成可與Win32/GDI文字媲美的清晰度(sharpness):

清晰度

WPF新的文本堆?,F(xiàn)在還支持顯式選擇鋸齒(aliased),灰度(grayscale)和ClearType渲染模式:

WPF新的文本堆棧

新的文本堆棧允許針對動態(tài)的或靜態(tài)的文字優(yōu)化的文本提示和對齊(text hinting and snapping),此外,新的文本堆?,F(xiàn)在還支持內(nèi)嵌位圖的字體,這允許以Win32用戶所習慣的清晰度(sharpness)來渲染許多東亞字體。

BindableRun

自WPF的最初發(fā)布起來,Run.Text一直是個普通的CLR屬性。這意味著,Run.Text缺乏WPF依賴屬性系統(tǒng)的所有好處,最明顯的就是其綁定的能力。在WPF 4中,我們將Run.Text轉(zhuǎn)化成了依賴屬性,允許開發(fā)人員使用WPF提供的第一個可綁定的Run。這里有更多細節(jié)。

自定義字典

WPF包含一個拼寫檢查器,在WPF 4之前,只使用OS提供的字典做輸入驗證之用。這對面向使用專用術(shù)語的特定行業(yè)的應用來說一直是個大問題,因為這些應用一直為拼寫錯誤報告所困擾。 WPF 4引進了一個API,允許應用程序往WPF用來檢查拼寫的字典中添加詞匯。這里有更多細節(jié)。

選擇畫刷和插入符光標畫刷

為允許對WPF應用的觀感(look and feel)做豐富的定制,開發(fā)人員現(xiàn)在還可以通過這2個簡單的屬性來改變用于繪制WPF文字選擇和插入符光標(caret)的畫刷:SelectionBrush 和 CaretBrush:

自定義字典 插入符光標

自定義字典WINDOWS 7 光芒四射

Windows 7的多點觸摸(Multitouch)支持

隨著多點觸摸輸入和操作處理支持的引進,WPF 4提供了一個極棒的方式,可在Windows 7中使你的客戶端應用大放光彩。多指輸入是通過WPF 4中現(xiàn)有的和新的輸入事件來呈示的,也有新的操作和慣性(inertia)事件可為開發(fā)人員所用。新的特性包括:

    ◆UIElement上的多點觸摸操作,慣性(漫游(Pan),縮放(Zoom)和旋轉(zhuǎn)(Rotate))事件 ◆UIElement, UIElement3D 和 ContentElement上的原始多點觸摸事件(提起(Up), 移動(Move), 按下(Down)) ◆多個捕捉支持多個活動控件 ◆支持多點觸摸漫游的ScrollViewer增強 ◆觸摸設備的擴展性 ◆將來Surface SDK的兼容性

Windows 7 Shell集成

WPF 4還向WPF開發(fā)人員呈示了若干個關鍵的Windows 7 新Shell特性。這些Shell特性能促成更豐富的集成用戶體驗。新的任務欄沒那么擁擠了,一眼看去就能傳達更多的信息。Aero縮略圖支持用戶命令。跳轉(zhuǎn)列表(Jump list)給應用程序提供了對與上下文相關的啟動任務和文件的訪問。

跳轉(zhuǎn)列表

WPF 4 集成了Windows 7 跳轉(zhuǎn)列表(Jump List)的功能,包括:

◆任務

◆個項(Items)

◆最近訪問和經(jīng)常訪問列表集成

◆自定義分類

Windows 7 任務欄集成,包括:

◆進度條

◆疊加圖標(Overlay Icon )

 ◆支持命令的縮略圖按鈕

◆描述文字的DWM縮略圖裁剪

在Windows 7中,任務欄被重新設計,變得不那么擁擠了,以幫助用戶使用較少的點擊數(shù)來操作任務。WPF 4在XAML中提供了與Windows 7 任務欄的集成,允許應用程序使用圖標疊加,進度條,縮略圖工具條,縮略圖描述文字以及縮略圖裁剪, 通過應用的任務欄圖標向用戶披露有用的信息。

WPF 4 中還有一個新的TaskbarItemInfo類,呈示為一個依賴屬性。它包含了Windows 7中引進的所有的新任務欄特性。

TaskbarItemInfo類圖標疊加(Icon Overlays)

圖標疊加允許一個應用程序通過在它的任務欄按鈕的右下角顯示一個小的疊加圖標,向用戶傳達某些通知和狀態(tài)。

進度條(Progress Bars)

任務欄按鈕可以用來給用戶顯示簡單的進度信息,而不必讓用戶轉(zhuǎn)換到應用的窗口本身。進度條可以用來跟蹤文件拷貝,下載,安裝,媒介燒錄,以及任何需要花一段時間的其他操作。

縮略圖工具條(Thumbnail Toolbars)

縮略圖工具條提供了對一個應用程序中關鍵命令的訪問,而不必讓用戶復原或激活窗口。 這個特性允許應用程序的作者將一個活動工具條控件嵌入一個窗口的縮略圖預覽中。 應用程序可以根據(jù)它當前的狀態(tài)的需要,顯示,啟用,禁止或隱藏縮略圖工具條上的按鈕:

縮略圖工具條

WPF核心

新的XAML/BAML語法分析器(Parser)引擎

WPF 4用建立在新的System.Xaml.dll之上的新的引擎換掉了XamlReader.Load(), BAML 裝載, 控件和 數(shù)據(jù)模板功能的實現(xiàn)。作為其中的一部分工作,我們修補了許多缺陷,做了很多功能方面的改進。XamlReader.Load()的用戶可以利用XAML2009中的若干新的語言特性,例如對泛型類型的支持。MarkupExtensions 和 TypeConverters 現(xiàn)在可以在對象圖創(chuàng)建過程中得到更多的服務,能促成更多的場景,例如對Root對象的訪問。通過使用System.Xaml.dll提供的許多新的底層API,用于分析和操作XAML的工具也將更加容易創(chuàng)建。

DLR的數(shù)據(jù)綁定支持

與CLR中的類不同,動態(tài)對象的成員是在運行時定義的。DynamicObject是.NET Framework 4中的一個新的抽象類,允許開發(fā)人員輕松地實現(xiàn)IDynamicMetaObjectProvider。隨著C#中由“dynamic”關鍵詞帶來的新DLR支持,我們預期一些類庫的實現(xiàn)會轉(zhuǎn)到使用DynamicObject 和 IDynamicMetaObjectProvider,將其作為一種標準的方式來呈示運行時定義的對象屬性和成員。WPF 4對IDynamicMetaObjectProvider的數(shù)據(jù)綁定支持將允許使用自然屬性句法來訪問動態(tài)屬性。

這個特性將擴展WPF數(shù)據(jù)綁定引擎,將現(xiàn)有的屬性和索引器(indexer)數(shù)據(jù)綁定句法映射成對由IDynamicMetaObjectProvider提供的動態(tài)成員的訪問的支持。

視覺狀態(tài)管理器(VSM)

另一個支持WPF-Silverlight連續(xù)體的新特性是VisualStateManager(視覺狀態(tài)管理器),引進了一種簡單的新方式來將視覺狀態(tài)施加給控件。這個機制提供了一種方式,通過提供將控件邏輯映射到各自的起始和終止視覺狀態(tài)的方法,可以輕易地定制控件的外觀(look)和行為(feel)。

視覺狀態(tài)管理器(VSM)

VSM是非常靈活的,在于它能自動地生成各別狀態(tài)間的過渡性動畫,這樣,控件的作者可以花較少的時間在編寫代碼上,而花較多的時間在定義在控件模板中的視覺狀態(tài)上。那意味著,VSM可以給予控件作者輕松地互換控件的外觀和行為的能力,VSM賦予了控件作者一種方式,可以輕易地互換控件在視覺上是如何響應用戶的交互的。這是被Expression Blend完全支持的。

HTML-XBAP 腳本互操作

WPF 4提供了XBAP和宿主HTML網(wǎng)頁(XBAP在其中是在一個HTML幀或IFRAME元素中裝載的)中的腳本間的直接通訊手段。XBAP可以深入訪問HTML DOM,包括對內(nèi)嵌在HTML網(wǎng)頁中的任何ActiveX控件的訪問,以及對DOM事件的處理。

WPF呈示宿主幀的主要腳本對象,這是一個動態(tài)對象,代表了幀的window對象加上HTML網(wǎng)頁腳本中的任何自定義的腳本函數(shù)和全局變量。從這個主要腳本對象,一個應用程序可以直接調(diào)用腳本函數(shù)或者 “點入(dot into)” HTML DOM對象【譯注:因為是動態(tài)對象,你可以使用“對象1.屬性對象2.方法”的句法,是謂“dot into”】。這個功能可在部分信任的XBAP中以及在Internet Explorer 和 Firefox的所有支持版本下使用。

UIAutomation(界面自動化))虛擬化

WPF在過去的版本中還引進了虛擬化的控件(virtualized controls),但從來沒有提供一個標準化的方式讓一個自動化客戶端與一個虛擬化的控件作交互。WPF 4中加了兩個控件模式,ItemsContainerPattern 和VirtualizedItemPattern,來支持對虛擬化了的元素的訪問和交互。ItemsContainerPattern可用來訪問虛擬化的控件以及找到虛擬化的個項(item),而VirtualizedItemPattern則可用于實現(xiàn)虛擬化的個項。

SynchronizedInput模式

這是WPF 4中新加的另一個UIA(界面自動化)控件模式,這個模式可為自動化客戶端用來跟蹤某個輸入事件是否被WPF框架導向到了正確的元素之上。這個模式有3個相關的自動化事件,即,InputReachedTargetEvent, InputReachedOtherElementEvent 和 InputDiscardedEvent,來表示輸入是在何處處理的。

客戶端部署

.NET Framework 4 的 Client Profile

為改進.NET Framework 4部署的大小,時間和總的體驗,現(xiàn)在提供了一個更精簡的 .NET 版本,是完整的.NET Framework 4 的一個子集,叫做.NET Framework 4 Client Profile。.NET Framework 4 Client Profile目前可重分發(fā)的大小是30MB左右,完整的Microsoft .NET Framework 4是Client Profile的純超集(superset)。

.NET Framework 4 Client Profile的目的是改進和幫助精簡客戶端應用的部署大小,部署時間,可靠性和總的部署體驗。Client Profile包含了大多數(shù)常見桌面客戶端應用(包括Windows Forms 和 WPF 應用)所需的功能,預期大多數(shù)客戶端應用的開發(fā)人員將會針對這個Client Profile,而不是完整的.NET Framework 4做開發(fā)。因為這個原因,大多數(shù)Visual Studio 2010 Beta 2 客戶端項目模板默認針對的是 .NET Framework 4 Beta 2 Client Profile。

與.NET Framework 3.5 SP1 Client Profile有所不同,.NET Framework 4 Client Profile中的一個重要增強是其對所有平臺和操作系統(tǒng)的支持,包括那些完整的框架所支持的操作系統(tǒng),象Windows Vista, Windows XP, Windows Servers 2003 和 2008, Windows 7 (所有操作系統(tǒng)同時支持x86和x64版本)。

你可以查看或改變你針對的框架版本,打開你的項目的屬性窗口,然后選擇 "Application"頁面,然后你可以改變“Target framework(針對的框架)”下拉框為完整的 .NET Framework或者.NET Client Profile。項目的“Publish”屬性頁面也允許你選擇ClickOnce部署所需的必備軟件(prerequisite)。 在Beta2中,VS 2010會根據(jù)你項目的主要針對目標自動選擇正確的profile(Client Profile版本或者完整版本):

屬性窗口

上面同樣的必備軟件對話框會在你創(chuàng)建“安裝和部署”項目(在菜單“添加新的項目”/“其他項目類型”下)時出現(xiàn),NET4 Client Profile必備軟件項在這個情形下是默認選擇了的。

與NET 3.5 SP1 Client Profile相比,NET4 Client Profile中的增強

盡管“Client Profile”的概念并不新,是在.NET Framework 3.5 SP1中引進的,但.NET Framework 4 Client Profile包含了若干重要的改進:

.NET Framework 4 Client Profile (新)

.NET Framework 3.5 SP1 Client Profile

所支持的操作系統(tǒng)

支持所有為完整的.NET Framework所支持的平臺和操作系統(tǒng)(除IA64 和W2K8中的服務器核心角色外)

只支持沒有安裝任何.NET Framework版本的Windows XP 32-bit機器

(否則Client Profile安裝程序會悄悄地安裝完整的3.5 SP1框架)

重分發(fā)

支持重分發(fā)以及web下載

只支持web下載

添加/刪除程序項

完整的框架包括了 Client Profile 和另一個叫“擴展的(Extended)”部分,因此它在添加/刪除程序?qū)υ捒颍ɑ蛘叱绦蚝吞匦源翱冢┲杏?個項。

如果你安裝了完整的框架,你只要刪除“添加/刪除程序”列表中的“擴展”項,就可以轉(zhuǎn)到Client Profile。

“添加/刪除程序”列表中只有一項

Visual Studio

Visual Studio 2010中對針對的Client Profile改進了的支持

在默認情形下,許多 Visual Studio 2010 Beta2客戶端項目將針對NET4 Client Profile

.NET Framework 3.5項目的Visual Studio 2008 Service Pack 1 “Application”項目屬性頁上的一個復選框。原本VS 2008沒有Client Profile支持。

特性

包括新的.NET 4特性(例如 托管擴展性框架(Managed Extensibility Framework) (MEF), C# 4 dynamic 關鍵詞等等),以及以前包括在NET 3.5 SP1 完整版本中的特性(語音,WPF 拼寫檢查等等)

.NET 3.5 SP1 完整版本的特性子集

因為.NET 4.0是個可與.NET Framework以前的版本并列安裝的版本,.NET 4.0 Framework的安裝并不要求對機器上的先前.NET版本進行服務或打補丁,這意味著.NET 4.0 Client Profile,比之于.NET 3.5 SP1 Client Profile,在機器上安裝起來會快很多。

完全信任的XBAP部署

從WPF 4開始,企業(yè)網(wǎng)域(Intranet Zone)和可信任域(Trusted Zone)中的XAML瀏覽器應用(XBAP)也啟用了ClickOnce的權(quán)限升高提示,方便了完全信任的XBAP的部署。針對那些需要安全權(quán)限超過企業(yè)網(wǎng)域(Intranet Zone)和可信任域(Trusted Zone)所提供的最低代碼訪問安全(CAS)權(quán)限集的XBAP,用戶在瀏覽到這些XBAP時,能夠在ClickOnce權(quán)限升高提示中點擊"運行"按鈕,以允許XBAP以所要求的權(quán)限運行。

結(jié)束語

你可以從上面看得出來,WPF 4.0中有一堆很棒的新功能。下面是幾個你可以去看一下的鏈接和資源,來進一步了解其中一些特性:

◆Channel 9: Chipalo Street 解釋 WPF 4文本方面新的和改進的功能

◆Chipalo 還有一系列很深入的貼子,討論WPF 4中新的文本堆棧方面的改進

◆Channel 9: David Teitlebau講解WPF 4圖形基礎

◆Channel 9: Jossef Goldberg 深入講解.NET Framework 4中Client Profile中的新特性

◆Jossef 還有幾篇很詳細的貼子, 介紹.NET 4中的Client Profile 以及 .NET 4 Beta 2中 Client Profile中的新特性

◆Channel 9: Mark Wilson-Thomas 示范Visual Studio 2010 WPF 和 Silverlight 設計器中的新特性

◆以及Windows Client.net方面的動手實驗室和錄像

◆Jaime Rodriguez著重介紹WPF 4中的一些重要的新特性和Visual Studio 2010 Beta 2中的WPF設計器

原文標題:VS 2010 和 .NET 4.0 系列之《WPF 4》篇

鏈接:http://blog.joycode.com/scottgu/archive/2009/11/02/115765.joy

責任編輯:彭凡 來源: Scott Guthrie 博客中文
相關推薦

2009-10-22 09:47:33

Visual Stud

2013-03-05 09:02:33

Visual Stud

2010-04-06 17:32:02

Visual Stud

2010-03-01 09:16:22

Visual Stud

2010-04-12 08:43:45

Visual Stud

2010-02-04 09:17:26

Visual Stud

2009-03-10 10:21:05

災難恢復Restart Manvs

2010-04-15 08:40:00

UML建模Visual Stud

2010-04-08 15:14:59

Visual StudASP.NET 4.

2010-03-01 13:50:35

Visual Stud

2009-04-23 14:05:28

Visual Stud歷史調(diào)試功能

2009-12-04 09:16:44

Visual Stud

2011-07-12 16:21:34

2009-08-21 13:29:20

Visual Stud

2009-12-02 09:43:38

Visual Stud

2009-12-02 10:38:02

Visual Stud

2010-11-29 08:57:20

Visual Stud.NET 4

2009-11-19 10:55:33

Visual Stud

2009-12-02 10:15:22

Visual Stud

2009-11-10 13:43:37

Visual Stud
點贊
收藏

51CTO技術(shù)棧公眾號