代码改变世界

WPF Summary:WPF的框架

2011-03-23 15:44  海蓓娜楽  阅读(529)  评论(0编辑  收藏  举报

WPF 框架

XPS Viewer(XPS阅览器)

XPS Viewer是阅读XPS格式的阅览器。

      XPS(XML Paper Specification,XML纸张规范),XPS 所用的置标语言是 WPF 所用的 XAML 的一个子集,因此显示 Windows 应用程序所用的方法可以用于 XPS 文档。XPS格式是一种基于Zip压缩格式的文件,使用Zip或者RAR软件可以对其进行解压,然后就可以看出它的内部结构,这种压缩方案也保证了XPS文件的大小是比较小的。但是仅仅是压缩是不够的,微软在一些地方也进行了优化。

XPSFlowDocument的区别?

     XPS针对打印和面向页面的内容。而“流文档”则针对屏幕显示以及提供更动态和可以论证的更复杂模型,“流文档”几乎适用于与文本内容相关的所有方面。详解“XPS示例”及“使用流文档灵活地显示内容”。

Document Services(文档服务)

XPS Documents(XPS文档): XPS文档是一个包,其中包含一个或多个固定文档以及呈现操作所需的所有资源和信息。 XPS 还是 Windows Vista 固有的后台打印文件格式。XPS Document 存储于标准 ZIP 数据集中,可以包括 XML 和二进制组件的组合,如图像和字体文件。XPS Document 设计提供一种单一高保真文档解决方案,支持以下多种用途:

Ø 将固定文档内容和资源读取、写入和存储为单个可移植且易于分发的文件;

Ø 利用 XPS Viewer应用程序显示文档;

Ø 以 Windows Vista 的本机打印后台输出格式输出文档;

Ø 将文档直接路由到与 XPS 兼容的打印机。

Packaging Services(文档打包服务):提供一种有效方式,在一个便于访问、可移植和易于分发的单一容器中组织应用程序数据、文档内容和相关资源。它能够将多个对象保存为一个单元。

除此之外,Document Services还包括DocumentViewerFlowDocumentTextBlock

User Interface Services(用户接口服务)

Application Services(应用程序服务)

.NET Framework、System.Windows、标记和代码隐藏构成了 WPF 应用程序开发体验的基础。 此外,WPF 还为创造具有丰富内容的用户体验提供了全面的功能。 为了打包此内容并将其作为“应用程序”发送给用户,WPF 提供了一些类型和服务,它们统称为“应用程序模型”。 该应用程序模型既支持开发独立应用程序,也支持开发浏览器承载的应用程序。

独立应用程序:对于独立应用程序,您可以使用 Window 类创建可从菜单栏和工具栏上访问的窗口和对话框。

浏览器承载的应用程序:对于浏览器承载的应用程序(称为 XAML 浏览器应用程序 (XBAP))。

WPF 提供了以下两个选项作为替代导航宿主:

Frame:用于承载页面或窗口中可导航内容的孤岛。

NavigationWindow:用于承载整个窗口中的可导航内容。

Deployment Services(部署服务):

Controls(控件):应用程序模型提供的用户体验是构造控件。 在 WPF 中,“控件”是一个总括性术语,适用于窗口或页面中承载的、具有用户界面 (UI) 并且实现某些行为的一种 WPF 类。

Layout(布局):创建 UI 时,您通过按位置和大小排列控件来形成一种布局。 任何布局的主要要求都是适应窗口大小和显示设置的变化。 WPF 为您提供了一个一流的可扩展布局系统,而不是强制您编写代码以使布局适应这些情况。 布局系统的基础是相对定位,它提高了适应窗口和显示条件变化的能力。此外,布局系统还管理控件之间的协商以确定布局。 协商过程分为两步:第一步,控件向父控件通知它所需的位置和大小;第二步,父控件通知该控件它可以具有多大空间。

DataBinding(数据绑定):创建大多数应用程序的目的是为用户提供查看和编辑数据的方式。对于 WPF 应用程序,存储和访问数据的工作已经由 Microsoft SQL Server 和 ADO.NET 之类的技术提供。 访问数据并将数据加载到应用程序的托管对象中后,WPF 应用程序的复杂工作才开始。

实质上它涉及到两个步骤:

Ø 将数据从托管对象复制到控件中,在控件上可以显示和编辑数据;

Ø 确保将使用控件对数据进行的更改复制回托管对象。

为了简化应用程序开发,WPF 提供了一个数据绑定引擎以自动执行这些步骤。数据绑定引擎的核心单元是 Binding 类,它的任务是将控件(绑定目标)绑定到数据对象(绑定源)。

Media Integration Layer(媒体集成层)

Imageing(图像):图像对大多数应用程序来说都很常见,但WPF对其做了较深的处理。

Effects(特效):

2D(二维):二维形状(WPF 提供了一个库,包含用矢量绘制的通用二维形状,如(矩形和椭圆等)。二维形状不仅仅用于显示,还实现了您可以从控件中获得的许多功能,包括键盘和鼠标输入等)、二维几何图形(绘制、裁剪等)、二维效果(渐变、旋转、缩放和扭曲等)。

3D(三维):WPF 还包括三维呈现功能,这些功能可以与二维图形进行集成,以便于创建更有趣的 UI。

Text(文本):为了加快高质量的文本呈现,WPF 提供了以下功能: OpenType 字体支持;ClearType 增强;利用硬件加速优势的高性能;文本与媒体、图形和动画的集成;国际字体支持和回退机制。

Audio/ Video(音频/视频):MediaElement控件,既可以播放视频,也可以播放音频,它的灵活程度使其足以用作自定义媒体播放器的基础。

Base Services(基础服务)

XAML(声明性标记语言):

Accessibility(对象模型 (COM) 辅助功能接口):

Input(输入):控件通常检测和响应用户输入。 WPF 输入系统使用直接事件和路由事件来支持文本输入、焦点管理和鼠标定位。

Eventing(事件):WPF引入了路由事件,这些事件可以在应用程序的元素树中调用存在于各个侦听器上的处理程序。

Property System(属性系统):WPF提供了一组服务,这些服务可用于扩展公共语言运行时 (CLR) 属性的功能。这些服务通常统称为 WPF 属性系统。 由 WPF 属性系统支持的属性称为依赖项属性。包括依赖项属性附加属性只读依赖项属性集合类型依赖项属性自定义依赖项属性

注:此文参考MSDN总结。