WPF 版本 4 的新增功能

本主题包含有关 Windows Presentation Foundation (WPF) 版本 4 中的新增功能和增强功能的信息。

本主题包含以下各节:

  • 新增控件

  • 可视状态管理器

  • 触控和操作

  • 图形和动画

  • Text

  • 绑定

  • XAML 浏览器应用程序

  • WPF 和 Windows

  • WPF 和 Silverlight 设计器

新增控件

WPF 新增了三个控件,因而,您可以更加轻松地创建业务应用程序。 这些控件与 Silverlight 版本几乎 100% 兼容。 因而,开发人员可以重用代码并快速创建客户端和 Web 版本。

可视状态管理器

WPF 可更好地支持 ControlTemplate 中不断变化的可视状态。已添加 VisualStateManager 类和支持类,以便可使用 Microsoft Expression Blend 等工具根据控件的可视状态定义其外观。 例如,您可以定义 Button 控件在处于 Pressed 状态时的外观。 有关为现有控件创建使用 VisualStateManagerControlTemplate 的更多信息,请参见通过创建 ControlTemplate 自定义现有控件的外观。 有关创建使用 VisualStateManager 的新控件的信息,请参见创建具有可自定义外观的控件

注意注意

元素可以使用 GoToElementState 方法来利用位于 ControlTemplate 之外的 VisualStateManager

触控和操作

WPF 中的元素现在接受触控输入。 UIElementUIElement3DContentElement 类公开用户在具备触控功能的屏幕上触控某个元素时发生的事件。除触控事件外,UIElement 还支持操作。 操作是指缩放、旋转或变换 UIElement。 例如,照片查看应用程序可能允许用户通过触控计算机屏幕上的照片来移动、缩放、旋转照片和调整其大小。 有关触控的更多信息,请参见演练:创建您的第一个触控应用程序输入概述

图形和动画

已经做出了一些与图形和动画相关的更改。

  • 布局舍入

    如果对象边缘落在像素设备的中间位置,则与 DPI 无关的图形系统可以创建呈现项目,如模糊或半透明边缘。 以前的 WPF 版本提供了像素捕捉来帮助处理这种情况。 Silverlight 2 引入了布局舍入,这是另外一种移动元素以使边缘落在整个像素边界上的方法。 WPF 现在支持使用 FrameworkElement 上的 UseLayoutRounding 附加属性进行布局舍入。

  • 缓存合成

    通过使用新的 BitmapCacheBitmapCacheBrush 类,可以将可视化树的复杂部分缓存为位图,并大大缩短呈现时间。 位图保持对用户输入(如鼠标单击)的响应能力,并且您可以将它画到其他元素上,就像使用任何刷子一样。

  • 像素着色器 3 支持

    WPF 4 基于 WPF 3.5 SP1 中引入的 ShaderEffect 支持而构建,允许应用程序使用像素着色器 (PS) 3.0 版立即写入效果。 PS 3.0 着色器型号比 PS 2.0 更加复杂,从而允许在受支持的硬件上创建更多效果。

  • 缓动函数

    您可以使用缓动函数增强动画,利用这些函数,可以对动画的行为进行其他控制。 例如,您可以将 ElasticEase 应用到动画以使动画出现弹出行为。 有关更多信息,请参见 System.Windows.Media.Animation 命名空间中的缓动类型。

Text

已经做出多项与文本相关的更改。

  • 新文本呈现堆栈

    WPF 文本呈现堆栈现已完全被取代。 此更改会改进文本呈现配置性、清晰度以及国际语言支持。 新文本堆栈现在支持显式选择别名、灰度或 ClearType 呈现模式。 文本堆栈现在支持显示得到优化的字符布局,以便生成清晰度可与 Win32/GDI 文本媲美的文本。 利用新文本堆栈,可以优化动画或静态文本的文本提示和对齐。 新文本堆栈还支持用带嵌入式位图的字体取代较小字号的字体,从而使许多东亚字体的呈现清晰度可与 Win32/GDI 文本相媲美。

  • 所选区域和脱字号自定义

    您可以立即指定刷子来为输入和读取控件(如 TextBox RichTextBoxFlowDocumentReader)绘制所选区域和脱字号。 TextBoxBase 上有两个新属性:

绑定

已做出与绑定相关的多种变更和增强。

XAML 浏览器应用程序

XAML browser applications (XBAPs) 中已添加两个功能。

  • HTML-XBAP 脚本互操作

    现在,当应用程序承载于 HTML 框架中时,您可以与包含 XBAP 的网页通信。 XBAP 可对 HTML DOM 进行深入访问并且可以处理 DOM 事件。 有关更多信息,请参见BrowserInteropHelper.HostScript

  • 完全信任 XBAP 部署

    如果 XBAP 需要完全信任,则用户在从 intranet 或其浏览器信任的站点之一安装应用程序时,会自动收到标准 ClickOnce 提升提示。

有关这些功能的更多信息,请参见 WPF XAML 浏览器应用程序概述

WPF 和 Windows

Windows 7 任务栏提供可以使用任务栏按钮将状态传递至用户并公开常规任务的增强型功能。 System.Windows.Shell 命名空间中的新类型为 Windows 7 任务栏中的功能提供托管包装,并管理传递至 Windows Shell 的数据。 例如,利用 JumpList 类型,您可以处理跳转列表,而利用 TaskbarItemInfo 类型,您可以处理任务栏缩略图。

Windows 7 和 Windows Vista 上的 WPF 对话框现在支持 Windows 7 和 Windows Vista 样式的外观及感觉,其中包括常见位置。 有关更多信息,请参见 FileDialogCustomPlace 类。

WPF 和 Silverlight 设计器

在 Visual Studio 2010 中,已经对设计器进行了各种改进来帮助创建 WPF 或 Silverlight 应用程序。

  • 对 Silverlight 的改进支持

    在 Visual Studio 2008 中,您可以安装 Silverlight Tools 以在 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 设计器

请参见

概念

.NET Framework 4 中的新增功能