WPF 4 版的新功能
本主題包含 Windows Presentation Foundation (WPF) 4 版中新功能和增強功能的相關資訊。
此主題包括下列章節:
新控制項
視覺狀態管理員
觸控與操作
圖形與動畫
文字
繫結
XAML 瀏覽器應用程式
WPF 和 Windows
WPF 和 Silverlight Designer
新控制項
WPF 中加入了三個新的控制項,更方便您建立商務應用程式。 這些控制項幾乎能與各種 Silverlight 版本完全相容。 如此可讓開發人員重複使用程式碼,並且迅速建立用戶端和 Web 版本。
視覺狀態管理員
WPF 為變更 ControlTemplate 中的視覺狀態提供了更佳的支援。其中已加入了 VisualStateManager 類別和支援類別,能夠根據視覺狀態使用各種工具 (如 Microsoft Expression Blend) 定義控制項的外觀。 例如,您可以定義 Button 控制項處於 Pressed 狀態時的外觀。 如需建立針對現有控制項使用 VisualStateManager 之 ControlTemplate 的詳細資訊,請參閱透過建立 ControlTemplate 自訂現有控制項的外觀。 如需建立使用 VisualStateManager 之新控制項的詳細資訊,請參閱建立外觀可自訂的控制項。
注意事項 |
---|
項目可以使用 GoToElementState 方法,在 ControlTemplate 外部利用 VisualStateManager。 |
觸控與操作
WPF 中的項目現在可接受觸控輸入。 UIElement、UIElement3D 和 ContentElement 類別會公開使用者在啟用觸控功能的螢幕上觸控項目時發生的事件。除了觸控事件之外,UIElement 還支援操作。 操作可解釋為調整、旋轉或轉譯 UIElement。 例如,相片檢視應用程式可能允許使用者透過觸控相片上方電腦螢幕的方式,移動、縮放、調整大小和旋轉相片。 如需觸控的詳細資訊,請參閱逐步解說:建立您的第一個觸控應用程式和輸入概觀。
圖形與動畫
圖形與動畫已有了數項變更。
配置進位
當物件邊緣落在像素裝置中央時,與 DPI 無關的圖形系統可能會建立轉譯疊影,例如模糊或半透明的邊緣。 舊版的 WPF 包含像素格線編排,可協助處理此情況。 Silverlight 2 引進了配置進位,這是移動項目使邊緣落在整個像素界限內的另一種方式。 現在,WPF 透過 FrameworkElement 上的 UseLayoutRounding 附加屬性支援配置進位。
快取複合
使用新的 BitmapCache 和 BitmapCacheBrush 類別,您就可以快取複雜的視覺化樹狀結構部分做為點陣圖,並且大幅改善轉譯的時間。 點陣圖會持續回應使用者輸入,例如滑鼠點選,而且您可以將它繪製到其他項目上,就如同筆刷一般。
支援 Pixel Shader 3
WPF 4 建置於 ShaderEffect 支援之上,這項支援於 WPF 3.5 SP1 引進,現在可讓應用程式使用 Pixel Shader (PS) 3.0 版撰寫效果。 PS 3.0 著色器模式比 PS 2.0 更為複雜,可在支援的硬體上提供更多效果。
Easing 函式
您可以使用 easing 函式增強動畫,這類函式可讓您進一步掌控動畫的行為。 例如,您可以將 ElasticEase 套用至動畫,讓動畫執行輕快跳動的行為。 如需詳細資訊,請參閱 System.Windows.Media.Animation 命名空間中的 easing 型別。
文字
文字已有了數項變更。
新的文字轉譯堆疊
WPF 文字轉譯堆疊已完全被取代。 這項改變為文字轉譯組態設定性、清晰度和國際語言的支援帶來了改善。 現在,新的文字堆疊支援明確選取別名、灰階或 ClearType 轉譯模式。 文字堆疊還支援顯示最佳化字元配置,所產生文字的清晰度足以比擬 Win32/GDI 文字。 新的文字堆疊允許最佳化動畫或靜態文字的文字提示和格線編排。 此外,新的文字堆疊也支援將擁有內嵌點陣圖的字型取代為較小的字型大小,讓許多東亞字型能夠以足以比擬 Win32/GDI 文字的清晰度呈現。
自訂選取範圍和插入號
現在您可以指定繪製用於輸入和讀取控制項之選取範圍和插入號的筆刷,例如 TextBox、RichTextBox 和 FlowDocumentReader。 TextBoxBase 上有兩個新的屬性:
SelectionBrush 可讓您建立反白顯示所選取文字的筆刷。
CaretBrush 可讓您變更繪製游標的筆刷。
繫結
繫結已有各種不同的變更和改進。
繫結至 InputBinding 上的命令。
您可以將 InputBinding 類別的 Command 屬性繫結至程式碼中定義的執行個體。 下列屬性為相依性屬性,因此可以做為繫結的目標:
InputBinding、MouseBinding 和 KeyBinding 類別會從主控 FrameworkElement 接收資料內容。
繫結至動態物件
WPF 支援實作 IDynamicMetaObjectProvider 之物件的資料繫結。 例如,如果您建立的動態物件是繼承自程式碼中的 DynamicObject,則可以使用標記延伸以繫結至 XAML 中的物件。 如需詳細資訊,請參閱 繫結來源概觀。
可繫結的文字執行
Run.Text 現為相依性屬性。 主要的好處在於它現在支援單向繫結。 此外還支援其他相依性屬性的功能,例如樣式設定和樣板化。
XAML 瀏覽器應用程式
XAML browser applications (XBAPs) 中加入了兩項功能。
HTML-XBAP 指令碼 Interop
現在您可以在應用程式裝載於 HTML 框架時,與包含 XBAP 的網頁進行通訊。 XBAP 可以深入存取 HTML DOM,並且能夠處理 DOM 事件。 如需詳細資訊,請參閱 BrowserInteropHelper.HostScript。
完全信任的 XBAP 部署
如果您的 XBAP 需要完全信任,現在使用者會在從內部網路或其中一個瀏覽器信任的網站安裝應用程式時,自動收到標準的 ClickOnce 提高權限提示。
如需這兩項功能的詳細資訊,請參閱 WPF XAML 瀏覽器應用程式概觀。
WPF 和 Windows
Windows 7 工作列提供了增強的功能,可讓您使用工作列按鈕將狀態傳達給使用者,並且公開一般工作。 System.Windows.Shell 命名空間中的新型別為 Windows 7 工作列中的功能提供了 Managed 包裝函式,並且會管理傳遞至 Windows Shell 的資料。 例如,JumpList 型別可讓您處理跳躍清單,而 TaskbarItemInfo 型別可讓您處理工作列縮圖。
Windows 7 和 Windows Vista 上的 WPF 對話方塊現已支援 Windows 7 和 Windows Vista 樣式的外觀和操作,包括自訂的部分。 如需詳細資訊,請參閱 FileDialogCustomPlace 類別。
WPF 和 Silverlight Designer
Visual Studio 2010 已經對設計工具做了各種改進,以便協助您建立 WPF 或 Silverlight 應用程式。
改良的 Silverlight 支援
您可以在 Visual Studio 2008 中安裝 Silverlight 工具,以便在 Visual Studio 中建立 Silverlight 應用程式。 不過,針對 Silverlight 專案提供的設計工具支援會有所限制。 在 Visual Studio 2010 中,現在針對 Silverlight 及 WPF 專案提供的設計工具支援則都相同。 例如,在 Silverlight 專案中,您現在可以在設計介面上使用滑鼠選取和放置項目。
支援多個平台版本
在 Visual Studio 2008 中,只能以最新的 WPF 平台版本做為控制項設計階段的目標; 在 Visual Studio 2010 中,這項支援已延伸至多個平台,包括對 WPF 3.5、WPF 4、Silverlight 3、Silverlight 4 與未來發行的平台版本提供設計階段支援。 正因為這些平台都有相同的擴充性 API,讓控制項設計階段作者可以輕鬆地撰寫一種經驗,然後在每個平台的控制項執行階段共用此經驗。
視覺化資料繫結
新的資料繫結產生器提供視覺化繫結建構和編輯,不需要輸入 XAML。
自動配置
配置的改良功能包括更為直覺式的 Grid 設計工具,以及對自動調整使用者控制項大小提供更佳的支援。
改良的屬性編輯
[屬性] 視窗現在能夠以視覺化的方式建立和編輯 Brush 資源。
如需詳細資訊,請參閱 WPF 設計工具。