한국   대만   중국   일본 
Windows Presentation Foundation - ?基百科,自由的百科全? 跳?到?容

Windows Presentation Foundation

本页使用了标题或全文手工转换
?基百科,自由的百科全?

W indows P resentation F oundation WPF )是美國 微軟 公司推出 .NET Framework 3.0 及以后版本的?成部分之一,?是一套基于 XML .NET Framework 向量 ??技?的展示層???架,微??其?下一代使用者介面技?,?泛被用于 Windows Vista 的界面??。其早期???段的 代? ?“ Avalon [1]

WPF使用一?新的 XAML (eXtensible Application Markup Language)?言???界面。同?WPF自?MVVM(Model-ViewModel-View)?架,????模式?把界面??以及后台???好的分?,降低了 ?合度 ,使用?界面????程序??者能更好的合作,降低??和更新的成本。

WPF/E 是WPF的子集合,全名是: Windows Presentation Foundation Everywhere 。在基於XAML與 JavaScript 之下,可跨越各種平台,目前WPF/E已演化?Microsoft Silverlight ,擔負微軟在 ?富互???用程序 領域,?正面與Adobe Flash 競爭的?品。

特徵 [ ?? ]

WPF部?之特徵如下:

繪圖服務 [ ?? ]

  • 所有的圖形皆可由 Direct3D ?生。
    • 目標在於統一各種顯示圖形。
    • Windows可以透過Direct3D來減輕在繪圖任務上的負荷,這項技術乃基於電腦 顯示? 繪圖處理單元 (Graphics Processing Unit)。
    • 支援向量繪圖(vector graphic)。
    • 支援3D透視圖?且影響2D應用程式。

佈署 [ ?? ]

  • WPF不僅僅是建立傳統的獨立程式(standalone applications)。其部署方式可分成兩類:standalone與XAML Browser Applications(XBAP)觀點。這些佈署方式在程式的撰寫上大致類似。
    • 獨立程式之安裝方式可以借由 ClickOnce 微軟安裝器 (MSI)完成。獨立程式可被視?完全信任(full trust)具有完全存取系統資源的優點。
    • XAML Browser Application (XBAPs)是一種寄宿於網頁瀏覽器上的程式,像是 Internet Explorer 。寄宿的程式可取得部?信任(partial trust)的 沙箱 (sandbox)環境之下,且無法取得完整的系統資源,WPF的功能亦無法完全發揮。寄宿的環境必須有意地防衛惡意的程式碼。從網頁上執行XBAP(讀音"ex-bap")必須是毫無破綻的(沒有安全性或安裝提示)。雖然這樣的寄宿程式在感觀上與傳統微軟的 DLL (out of process)有相異處。

互操作性 [ ?? ]

  • WPF可與 Win32 互相操作:經由主導(hosting)機制,可以在Win32碼之下使用Windows Presentation Foundation,或是在Windows Presentation Foundation環境下使用Win32程式碼 [2]
  • Windows Forms 的互操作性亦可利用 ElementHost (繼承自System.Windows.Forms.ContainerControl)以及 WindowsFormsHost (繼承自System.Windows.Forms.Integration)等類別達成,同時提供了Host Avalon Element的能力。

媒體播放 [ ?? ]

  • WPF針對2D圖形提供形狀基元(shape primitives),內建筆刷(brushes)、?筆(pens)、幾何(geometries),與變形(transforms)。
  • WPF以Direct3D提供完整的3D功能。但是,WPF提供更完整的整合性在於使用者介面上(UI)、文件(documents),與媒體(media)。這使得?可以實現3D UI, 3D文件,和3D媒體。
  • 支援了大量的圖片格式(image formats)。
  • WPF支援大量影音格式,如: WMV MPEG 以及某些 AVI ?。
  • WPF支援以時間?基礎的動?效果,不同於以影格?基礎的處理方式。如此動?的速度與系統效能就不會有所關連。
  • 文件的呈現支援 ClearType ,這提供一種次像素(sub-pixel)定位功能,?化其自然風格。WPF同時支援 OpenType 字型樣式。

?据?定 [ ?? ]

?据?定是在?用 UI ?其?示的?据之?建立?接的?程。 如果?定具有正?的?置,?且?据提供适?的通知,?在?据更改其??,?定到??据的元素?自?反映更改。 ?据?定?意味着,如果元素中?据的外部表示形式?生更改,?基??据可以自??行更新以反映更改。 例如,如果用??? TextBox 元素中的?,?基??据??自?更新以反映?更改。

?据?定的典型用法是?服?器或本地配置?据放置到??或其他 UI 控件中。 此?念在 WPF 中得到?展,包括?大量?性?定到不同?型的?据源。 在 WPF 中,元素的依??性可以?定到 .NET ?象(包括 ADO.NET ?象或? Web 服?和 Web ?性??的?象)和 XML ?据。?据?定的方式一共有四?:

  • 通? OneWay ?定,?源?性的更改?自?更新目??性,但?目??性的更改不??播回源?性。 如果?定的控件??式只?,?此?型的?定适用。 例如,可能??定到股票行情自?收?器??的源,也可能目??性?有用于?行更改的控件接口(例如表的?据?定背景色)。 如果无需??目??性的更改,?使用 OneWay ?定模式可避免 TwoWay ?定模式的系???。
  • 通? TwoWay ?定,更改源?性或目??性??自?更新?一方。 此?型的?定适用于可????或其他完全交互式 UI 方案。 大多??性默?? OneWay ?定,但某些依??性(通常?用?可??控件的?性,例如 TextBox.Text 和 CheckBox.IsChecked)默?? TwoWay ?定。 用于?定依??性?定在默?情?下是?向?是?向的?程方法是:使用 DependencyProperty.GetMetadata ?取?性元?据,然后?? FrameworkPropertyMetadata.BindsTwoWayByDefault ?性的布??。
  • OneWayToSource ?定? OneWay ?定相反;?目??性更改?,??更新源?性。 一?示例方案是只需要? UI 重新?算源?的情?。
  • OneTime ?定未在?中?示,??定?使源?性初始化目??性,但不?播后?更改。 如果?据上下文?生更改,或者?据上下文中的?象?生更改,?更改 不? 在目??性中反映。 如果适合使用?前??的快照或?据??????据,?此?型的?定适合。 如果?想使用源?性中的某???初始化目??性,且提前不知道?据上下文,?此?型的?定也有用。 此模式??上是 OneWay ?定的一??化形式,?在源?不更改的情?下提供更好的性能

?据?定在展示層?無太大負擔。WPF提供有?据模板(data templates)來控制這些?据。

使用者介面 [ ?? ]

  • WPF提供了內建元件控制項集合,包括有按?(button)、選單(menu)、列表盒(list box)等。
  • WPF的邏輯層與外觀展示層已形成?力的分離模式。
    • 元件的外貌樣品可以被完全改寫。

文件 [ ?? ]

對OpenType的支援包括:

工具 [ ?? ]

在以往Win32應用程式發展時,?大多數的工作都由開發人員(Developer)來處理,美術設計人員(Designer)可以涉入的相當有限,而且在Win32 API時代,要在使用者介面中實作特效的話,都需要撰寫大量的程式碼才可以做到。

在WPF中,因?大多數的使用者介面元素都可以利用XAML來宣告,因此微軟試著要將Designer和Developer結合在一起,如此可以讓Designer可以充?發揮,?且Developer也不用傷腦筋在外觀設計上,微軟的Designer工具? Microsoft Expression ?品集,其中的 Expression Blend ??設計WPF應用程式的設計工具,?也可以用來設計 Silverlight 程式。

開發人員仍然可以使用Visual Studio來開發WPF應用程式,在Visual Studio中內含WPF Designer可供開發人員使用。

WPF/E [ ?? ]

WPF/E發展初期?微軟計?將WPF推向各平台的計?,目前此計?已經被發展成? Silverlight 技術。

WPF應用程式 [ ?? ]

WPF是下一代圖形API在?面上的延伸。以WPF撰寫應用程式,具有更高的視覺品質。下表列出微軟自家的?品或是第三協力廠商的主力?品:

發行歷史 [ ?? ]

系列 版本 發佈日期 重要變更/事項 一同發佈的?品
3 3.0 2006年11月 - -
3.5 2007年11月 - -
3.5 SP1 2008年8月 - -
4 4.0 2010年4月 - -
4.5 2012年8月 - -
4.5.1 2013年10月 - -
4.52 2014年5月 - -
4.6 2015年7月 高解析度 (High Dots Per Inch; HDPI) 改善;觸控行?焦點 (Touch) 改善;程式子視?透明 (Transparent child window) 支援 Visual Studio 2015


?考資料 [ ?? ]

  1. ^ Gharighi, A. WPF ("Avalon") Demo 1 . CodeProject.com. CodeProject. 2006-05-02 [ 2013-08-22 ] . ( 原始?容 存?于2021-07-16).  
  2. ^ WPF and Win32 Interoperation Overview . [ 2007-04-03 ] . ( 原始?容 存?于2008-02-06).  
  3. ^ QQ??室 . [ 2012-06-16 ] . ( 原始?容 存?于2022-04-18).  

外部?接 [ ?? ]