管理控件的状态以及用于状态过渡的逻辑。
.net3.5:
命名空间: System.Windows
程序集: System.Windows(在 System.Windows.dll 中)
.net4.0:
命名空间: System.Windows
程序集: PresentationFramework(在 PresentationFramework.dll 中)
具体如下:
本主题包含有关 Windows Presentation Foundation (WPF) 版本 4 中的新增功能和增强功能的信息。
本主题包含以下各节:
WPF 新增了三个控件,因而,您可以更加轻松地创建业务应用程序。 这些控件与 Silverlight 版本几乎 100% 兼容。 因而,开发人员可以重用代 码并快速创建客户端和 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 类,可以将可视化树的复杂部分缓存为位图,并大大缩短呈现时间。 位图保持对用户输入(如鼠 标单击)的响应能力,并且您可以将它画到其他元素上,就像使用任何刷子一样。
-
像素着色器 3 支持
WPF 4 基于 WPF 3.5 SP1 中引入的 ShaderEffect 支持而构建,允许应用程序使用像素着色器 (PS) 3.0 版立即写入效果。 PS 3.0 着色器型号比 PS 2.0 更加复杂,从而允许在受支持的硬件上创建更多效果。
-
缓动函数
您可以使用缓动函数增强 动画,利用这些函数,可以对动画的行为进行其他控制。 例如,您可以将 ElasticEase 应用到动画以使动画出现弹出行为。 有关更多信息,请参见 System.Windows.Media.Animation 命名空间中的缓动类型。
已经做出多项与文本相关的 更改。
-
新文本呈现堆栈
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 浏览器应用程序 (XBAP) 中已添加两个功能。
-
HTML-XBAP 脚本互操作
现在,当应用程序承载于 HTML 框架中时,您可以与包含 XBAP 的网页通信。 XBAP 可对 HTML DOM 进行深入访问并且可以处理 DOM 事件。 有关更多信息,请参见 BrowserInteropHelper.HostScript 。
-
完全信任 XBAP 部署
如果 XBAP 需要完全信任,则用户在从 intranet 或其浏览器信任的站点之一安装应用程序时,会自动收到标准 ClickOnce 提升提示。
有关这些功能的更多信息, 请参见 WPF XAML 浏览器应用程序概述 。
Windows 7 任务栏提供可以使用任务栏按钮将状态传递至用户并公开常规任务的增强型功能。 System.Windows.Shell 命名空间中的新类型为 Windows 7 任务栏中的功能提供托管包装,并管理传递至 Windows Shell 的数据。 例如,利用 JumpList 类型,您可以处理跳转列表,而利用 TaskbarItemInfo 类型,您可以处理任务栏缩略图。
Windows 7 和 Windows Vista 上的 WPF 对话框现在支持 Windows 7 和 Windows Vista 样式的外观及感觉,其中包括常见位置。 有关更多信息,请参见 FileDialogCustomPlace 类。
在 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 设计器 。
新增WPF4中的VisualStateManager后
管理控件的状态以及在各个状态之间转换所遵循的逻辑。
程 序集: PresentationFramework(在 PresentationFramework.dll 中)
用 于 XAML 的 XMLNS: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation
管理控件的状态以及用于状态过渡的逻辑。
程 序集: System.Windows(在 System.Windows.dll 中)