快捷搜索:

WPF: 使用Flow Document (流文档)

本文示例源代码或素材下载

WPF面向的是UI展现,而文本显示无疑是UI层中的紧张功能之一。WPF供给了XPS (XML 文件规范) 和Flow Document (流文档) 来在不合的场景下展现或者操作文档的显示。XPS(XML 文件规范)针对打印和面向页面的内容,而”流文档”则针对屏幕显示以及供给更动态和可以论证的更繁杂模型。“流文档”险些适用于与文本内容相关的所有方面,从产品阐明到整本册本。

Flow Document是WPF3.0中供给的一个用于显示的新功能,它给了开拓职员另一种选择去显示内容。Flow Document经由过程类似 HTML 文档的款式定义文本流,但其功能更强大年夜,并可供给显着更先辈的结构选项。它内置了很多的元素,例如,Figure, Paragraph, Section, Floater, Table, InlineUIContainer等可以经由过程不合的结构和元素节制其显示要领。并且,它支持对图像的支持,使其可以像在HTML中一样随意节制。再加上其默认支持的导航,显示模式,搜索,让其内容展现要领有了进一步的前进。

Flow Document

Flow Document定义了这个流文档的顶级显示模式,在其内部可以包孕诸如Section, Paragraph等标签用来节制其层级显示模式。这就类似于HTML中的DIV,TABLE等区域节制标签一样用来组成文档的显示布局。定义一个流文档很简单,你可以经由过程声明一个Flow Document和其内部的显示布局即可,例如以下代码经由过程显示了若何来创建了简单的显示功能。

Best Small Businesses to Start

Learn from the examples of entrepreneurs who’ve succeeded in these hot start-up areas

By Matthew Bandyk  Posted November 13, 2008

下图显示了XAML的效果。这里仅仅显示了3个Paragraph并以设置了简单的样式,但没有高档结构设置。Flow Document以默认的Page Viewer要领展示。

Figure 1: 通俗声明的Flow Document以Page Viewer的要领展示

显示模式

Flow Document默认支持三种展现要领,这也对应了上图中右下方的三个按钮。默认的Flow Document会以FlowDocumentReader来天生。对付不合的展现要领,其包孕的导航,搜索等都有所不合,以致缺少某些功能。

·     FlowDocumentPageViewer :以零丁的页面显示流文档

·     FlowDocumentScrollViewer:以继续的流显示文档,经由过程滚动条导航

·     FlowDocumentReader :组合了滚动查看器和页面查看器,让用户可以在两种措施之间切换。这是用于流文档的默认选项。

FlowDocumentPageViewer

此选项以零丁的页面显示流文档,让页面翻转而非滚动。这与 Word 中的“涉猎版式”类似。以下XAML片段声清楚明了文章以FlowDocumentPageViewer的要领显示。

Best Small Businesses to Start

Learn from the examples of entrepreneurs who’ve succeeded in these hot start-up areas

By Matthew Bandyk  Posted November 13, 2008

……

……

留意展现视图中呈现了三个展现要领切换的按钮。FlowDocumentReader具有一个名为ViewMode的属性,可取的值为Page, TwoPage和Scroll,经由过程设置ViewMode可以在设定其初始展现要领。默觉得Page,对应于FlowDocumentPageViewer。

Figure 4: 以FlowDocuemnReader要领展现流文档

FlowDocumentReader 控件采取多列的措施出现文本。这是另一项异常紧张的可读性功能,由于人们不爱好读超过全部宽屏显示页面宽度的一行行翰墨。实际列宽因各类身分会有所不合, 例如用于内容显示的可用总宽度、缩放系数和定义的列宽等。流文档的默认列宽为字体大年夜小的 20 倍,默认字体大年夜小约为 300 个与设备无关的像素(3 1/8 英寸的正确尺寸显示)。以是在你调剂窗口大年夜小时,一旦窗口宽度可以容纳两个默认列宽,流结构会自动变动为2列显示。然则你可以经由过程设置ColumnWidth属性来设置你自己的列宽度。

-->

-->

-->

Best Small Businesses to Start

Learn from the examples of entrepreneurs who’ve succeeded in these hot start-up areas

…….

展现图像Figure

Figure标记我们平日可以用来展现图像。可以根据设置HorizontalAnchor属性和VerticalAnchor属性的值,流结构会根据其空间结构而改变。这很有助于我们用各类不合的要领来展现图线及其翰墨的结构。你可以让翰墨萦绕图像,也可以让翰墨像HTML中的Float一样,这显得很简单。下边的代码片段将图像显示在Content的中央:

Figure - Model Car

America's economic future is uncertain. Unemployment is up sharply. Credit is tight. People are worried about their savings. So is it a great time to start a business? "Are you crazy?" might be the quick answer.

当然,Figure还有一个紧张的用户便是设置标题。对付标题,你可以经由过程设置Width为1Content或者nColumn等要领来表示其所在结构中的位置。以下代码片段设置了若何定义一个超过全部文档所有列的标题:

Best Small Businesses to Start

Learn from the examples of entrepreneurs who’ve succeeded in these hot start-up areas

By Matthew Bandyk

Posted November 13, 2008

This contains some text and

Button Control

interspersed.

Host In Block Control

其他标记

类似于Html中我们常常也会用到以下几中元素:

·     Table元素 : 容许内容以表格的要领展现。

Type tile here

Row Content Display Area

Type tile here

Row Content Display Area

·     ListItem元素:以列表的要领展现内容。经由过程MarkStyle可以改变其列表风格。

this area shows as list item

this area shows as list item

this area shows as list item

this area shows as list item

·     LineBreak:添加一个换行标记。

Figure 8: 在Flow Document中利用Table, ListItem和Floater.

Flow Document供给了一系列的默认导航、分页、搜索功能,并可以经由过程以类似HTML的要领展现内容。更为客不雅的是,因为支持内嵌WPF Control,我们可以供给更多的可控功能。

您可能还会对下面的文章感兴趣: