五、文本
在文本支持方面,也进行了若干更改,主要有:
1. 新的文本渲染栈
以前的WPF文本渲染栈已被完全取代。新版本的文本渲染栈为文本渲染的可配置性、清晰度和国际语言支持方面进行了极大改进。现在,新的文本栈支持显式地选择锯齿(aliased),灰度,或ClearType渲染模式。而且,现在的文本栈支持显示优化的字符布局,从而能够产生可以与Win32/GDI文本清晰度相媲美的文字。新的文本栈还允许优化文字提示和对齐,而不论该文本是动画型或是静态的文本。新的文本栈还通过使用嵌入位图取代较小字体的方式来支持字体,从而让许多东亚字体渲染的清晰度可以媲美Win32/GDI文本。
2. 选择和光标定制
现在,您可以指定画刷来绘制选择区域并指定光标用于输入和读取控件(如TextBox 、RichTextBox和FlowDocumentReader)。现在,TextBoxBase类新添加了两个属性:
3. SelectionBrush:允许您针对突出选定的文本创建一个画刷。
4. CaretBrush:允许您更改绘制光标的画刷。
六、绑定
在绑定方面,进行了许多的修改并提供了一些增强功能。
1. 绑定到InputBinding类的命令
可以把一个InputBinding类的Command属性绑定到一个代码中定义的实例上。下列属性都是依赖属性,所以,它们都可以成为绑定的目标:
2. InputBinding.Command
3. InputBinding .CommandParameter
4. InputBinding.CommandTarget
5. KeyBinding.Key
6. KeyBinding.Modifiers
7. MouseBinding.MouseAction
此外,InputBinding,MouseBinding和KeyBinding类都是从它们所隶属的FrameworkElement中接收数据上下文。
8. 绑定到动态对象
WPF中支持对实现IDynamicMetaObjectProvider的对象的数据绑定。例如,如果您在代码中创建了一个继承自DynamicObject的动态对象,那么,您可以使用标记扩展在XAML中绑定此对象。有关这方面的详细信息,请参见《绑定源概述》。
9. 可绑定的Run.Text
现在,Run.Text已成为一个依赖属性。这样修改的主要优点是,现在它支持单向绑定。此外,它还支持如风格化和模板化这样的依赖属性等特片。
七、XAML浏览器应用程序
又有两种新功能被添加到XAML浏览器应用程序(XBAP)中。
1. HTML-XBAP脚本互操作
现在,当您的应用程序宿主在一个HTML框架元素内时,您可以与包含XBAP的Web页面进行通信。这个XBAP可以深度访问HTML DOM树和处理DOM事件。有关这方面更多的信息,请参考有关BrowserInteropHelpe.HostScript属性的介绍。
2. 完全信任型XBAP应用部署
如果您的XBAP应用需要充分的系统信任,现在的用户可以自动接收标准的ClickOnce评价性安装提示。此时,用户可以从企业内网或其他的浏览器信任站点上安装此应用程序。
欲了解关于上述两个功能的更多信息,请参见《WPF中的XAML浏览器应用程序概述》。
八、WPF和Windows
Windows 7的任务栏提供了增强的功能,能够使您使用任务栏按钮及时地与用户沟通信息并提供常规任务。在System.Windows.Shell命名空间中定义的新类型为Windows 7任务栏功能提供了托管包装器并管理传递给Windows外壳程序中的数据。例如,JumpList类型允许您操控制跳转列表,而TaskbarItemInfo类型允许您操作任务栏缩略图。
在Windows 7和Windows Vista系统中的WPF对话框现在支持Windows 7和Windows Vista风格的外观,其中包括定制显示位置,等等。更详细的信息,请参见有关FileDialogCustomPlace类的介绍。
九、WPF和Silverlight设计器
在Visual Studio 2010中,各种设计器都得到改进以帮助创建WPF或Silverlight应用程序。
1. 针对Silverlight的改进支持
在Visual Studio 2008中,您可以安装Silverlight Tools,从而在Visual Studio中创建Silverlight应用程序。然而,Visual Studio 2008针对Silverlight项目的设计器支持是有限的。在Visual Studio 2010中,为Silverlight和WPF项目的设计器支持都是一样的。例如,在现在的Silverlight项目中你可以使用鼠标在设计器界面中选择和放置组件。
2. 支持多种平台版本
在Visual Studio 2008中,控件的设计时支持只能够针对最新版本的WPF平台。在Visual Studio 2010中,这种设计时支持被扩展到多种平台,包括WPF 3.5,WPF 4,Silverlight 3,Silverlight 4的支持,甚至还有未来发行的平台。由于相同的可扩展API存在于所有这些平台中,所以,控件设计时作者可以很容易地通过一次设计而最终在针对每个平台的控件运行时中共享此设计。
3. 可视化数据绑定
新的数据绑定编辑器支持以可视化方式构造和编辑数据绑定,而无需使开发者手工输入XAML代码。
4. 自动布局
布局方面的改进包括引入了一个更直观易用的Grid设计器,从而更好地支持自动地调整用户控件的尺寸。
5. 改进的属性编辑功能
现在,属性窗口能够以可视化方式创建和编辑画刷资源。更多的相关信息,请参见《WPF设计器》。