Object->DispatcherObject->DependencyObject->Visual->UIElement->FrameworkElement->Control->FlowDocumentReader
提供一种查看流内容的控件,该控件内置了对多种查看模式的支持。
FlowDocumentReader具有使用户能够在各种查看模式之间动态选择的功能,包括单页(一次页面)查看模式,一次两页(书本阅读格式)查看模式,以及连续滚动(无底)观看模式。如果您不需要在不同的查看模式之间动态切换的功能,可以使用固定在特定查看模式下的轻量级流内容查看器。 FlowDocumentPageViewer以单页查看模式显示流内容,而FlowDocumentScrollViewer以连续滚动模式显示流内容。有关可用显示模式的更多信息,请参见FlowDocumentReaderViewingMode。
下图显示了带有默认用户界面(UI)的FlowDocumentReader控件。
Content Area -Content Area显示 FlowDocument Document 属性指定的的内容。
Tool Bar 工具栏停靠在Content Area的下方。 它承载用于搜索内容、导航页面、选择查看模式和更改缩放级别的控件。
Find Button “查找”按钮显示 "查找" 对话框,该对话框允许用户在 FlowDocumentReader 的内容中搜索指定的词或短语。 如果 IsFindEnabled 为false
,则不显示 " 查找 " 按钮。 有关详细信息,请参阅 Find。
Page Navigation Controls -页面导航控件包含一个按钮,用于跳转到下一页 (向下箭头) 或上一页 ("向上" 箭头) ,以及当前页码和总页数的指示器。
Viewing Mode Buttons -使用查看模式按钮,用户可以从可用的查看模式中进行选择。 有关详细信息,请参阅 ViewingMode。
Zoom Controls -通过单击加号或减号按钮,用户可以使用缩放控件来增加或减少缩放级别。 缩放控件还包括一个用于调整缩放级别的滑块。 有关详细信息,请参阅 Zoom。
默认工具栏 UI 不包含 " 打印 " 按钮。
FlowDocument 唯一允许的子元素是 FlowDocumentReader 。 FlowDocumentReader元素最多只能托管一个元素 FlowDocument 。
名称 | 备注 | 权限 |
---|---|---|
CanDecreaseZoomProperty | 标识 CanDecreaseZoom 依赖项属性。 | public static readonly |
CanGoToNextPageProperty | 标识 CanGoToNextPage 依赖项属性。 | public static readonly |
CanGoToPreviousPageProperty | 标识 CanGoToPreviousPage 依赖项属性。 | public static readonly |
CanIncreaseZoomProperty | 标识 CanIncreaseZoom 依赖项属性。 | public static readonly |
DocumentProperty | 标识 Document 依赖项属性。 | public static readonly |
IsFindEnabledProperty | 标识 IsFindEnabled 依赖项属性。 | public static readonly |
IsInactiveSelectionHighlightEnabledProperty | 标识 IsInactiveSelectionHighlightEnabled 依赖项属性。 | public static readonly |
IsPageViewEnabledProperty | 标识 IsPageViewEnabled 依赖项属性。 | public static readonly |
IsPrintEnabledProperty | 标识 IsPrintEnabled 依赖项属性。 | public static readonly |
IsScrollViewEnabledProperty | 标识 IsScrollViewEnabled 依赖项属性。 | public static readonly |
IsSelectionActiveProperty | 标识 IsSelectionActive 依赖项属性。 | public static readonly |
IsTwoPageViewEnabledProperty | 标识 IsTwoPageViewEnabled 依赖项属性。 | public static readonly |
MaxZoomProperty | 标识 MaxZoom 依赖项属性。 | public static readonly |
MinZoomProperty | 标识 MinZoom 依赖项属性。 | public static readonly |
PageCountProperty | 标识 PageCount 依赖项属性。 | public static readonly |
PageNumberProperty | 标识 PageNumber 依赖项属性。 | public static readonly |
SelectionBrushProperty | 标识 SelectionBrush 依赖项属性。 | public static readonly |
SelectionOpacityProperty | 标识 SelectionOpacity 依赖项属性。 | public static readonly |
SwitchViewingModeCommand | 获取表示“切换查看模式”命令的值。 | public static readonly |
ViewingModeProperty | 标识 ViewingMode 依赖项属性。 | public static readonly |
ZoomIncrementProperty | 标识 ZoomIncrement 依赖项属性。 | public static readonly |
ZoomProperty | 标识 Zoom 依赖项属性。 | public static readonly |
名称 | 备注 | 权限 |
---|---|---|
CanDecreaseZoom | 获取一个值,该值指示是否可以降低 Zoom 级别。 | get; |
CanGoToNextPage | 获取一个值,该值指示 FlowDocumentReader 是否可以执行 NextPage 路由命令以跳转到下一页内容。 | get; |
CanGoToPreviousPage | 获取一个值,该值指示 FlowDocumentReader 是否可以执行 PreviousPage 路由命令以跳转到上一页内容。 | get; |
CanIncreaseZoom | 获取一个值,该值指示是否可以增加 Zoom 级别。 | get; |
Document | 获取或设置一个 FlowDocument,它可托管 FlowDocumentReader 显示的内容。 | get; set; |
IsFindEnabled | 获取或设置一个值,该值指示是否启用了 Find 路由命令。 | get; set; |
IsInactiveSelectionHighlightEnabled | 获取或设置指示 FlowDocumentReader 是否在控件没有焦点时显示所选文本的值。 | get; set; |
IsPageViewEnabled | 获取或设置一个值,该值指示是否以查看模式提供 Page。 | get; set; |
IsPrintEnabled | 获取或设置一个值,该值指示是否启用了 Print 路由命令。 | get; set; |
IsScrollViewEnabled | 获取或设置一个值,该值指示是否以查看模式提供 Scroll。 | get; set; |
IsSelectionActive | 获取指示 FlowDocumentReader 是否具有焦点和选择文本的值。 | get; |
IsTwoPageViewEnabled | 获取或设置一个值,该值指示是否以查看模式提供 TwoPage。 | get; set; |
LogicalChildren | 获取一个可循环访问 FlowDocumentReader 的逻辑子级的枚举器。 | get; |
MaxZoom | 获取或设置 Zoom 允许的最大 FlowDocumentReader 级别。 | get; set; |
MinZoom | 获取或设置 Zoom 允许的最小 FlowDocumentReader 级别。 | get; set; |
PageCount | 获取由 FlowDocumentReader 承载的内容的当前显示页的数目。 | get; |
PageNumber | 获取当前显示页的页码。 | get; |
Selection | 获取 FlowDocumentReader 的所选内容。 | get; |
SelectionBrush | 获取或设置用于突出显示选定文本的画笔。 | get; set; |
SelectionOpacity | 获取或设置 SelectionBrush 的不透明度。 | get; set; |
ViewingMode | 获取或设置 FlowDocumentReader 的查看模式。 | get; set; |
Zoom | 获取或设置当前缩放级别。 | get; set; |
ZoomIncrement | 获取或设置缩放增量。 | get; set; |
名称 | 备注 | 权限 |
---|---|---|
CancelPrint | 取消任何当前打印作业。 | public |
CanGoToPage | 返回一个值,该值指示 FlowDocumentReader 是否能够跳转到指定的页码。 | public |
DecreaseZoom | 执行 DecreaseZoom 路由命令。 | public |
Find | 切换“查找”对话框。 | public |
IncreaseZoom | 执行 IncreaseZoom 路由命令。 | public |
OnApplyTemplate | 为 FlowDocumentReader 构建可视化树。 | public |
OnCancelPrintCommand | 处理 CancelPrint 路由命令。 | protected |
OnCreateAutomationPeer | 创建并返回此 AutomationPeer 的 FlowDocumentReader 对象。 | protected |
OnDecreaseZoomCommand | 处理 DecreaseZoom 路由命令。 | protected |
OnDpiChanged | 此流文档读取器呈现时所使用的 DPI 发生变化时进行调用。 | protected |
OnFindCommand | 处理 Find 路由命令。 | protected |
OnIncreaseZoomCommand | 处理 IncreaseZoom 路由命令。 | protected |
OnInitialized | 处理 Initialized 路由事件。 | protected |
OnIsKeyboardFocusWithinChanged | 处理 IsKeyboardFocusWithinChanged 路由事件。 | protected |
OnKeyDown | 每当未处理的 KeyDown 附加路由事件在其路由中发生在一个从此类派生的元素上时,就会调用此方法。 实现此方法可为此事件添加类处理。 | protected |
OnPrintCommand | 处理 Print 路由命令。 | protected |
OnPrintCompleted | 完成一个打印作业后调用。 | protected |
OnSwitchViewingModeCommand | 处理 SwitchViewingMode(FlowDocumentReaderViewingMode) 路由命令。 | protected |
调用标准的“打印”对话框,此对话框可用于打印 FlowDocumentReader 的内容和配置打印首选项。 | public | |
SwitchViewingMode | 执行 SwitchViewingModeCommand 命令。 | public |
SwitchViewingModeCore | 处理 SwitchViewingMode(FlowDocumentReaderViewingMode) 命令。 C# | protected |
名称 | 备注 |
---|---|
IAddChild.AddChild | void IAddChild.AddChild (object value); |
IAddChild.AddText | void IAddChild.AddText (string text); |
用高级文档功能(如分页和列)承载流内容和设置流内容格式。
FlowDocument 为子内容强制实施强内容模型。 中包含的顶级子元素 FlowDocument 必须派生自 Block 。
如果使用FlowDocument 作为XAML 文件的根元素,FlowDocument 的默认DataTemplate包含 FlowDocumentReader 用于显示文档的。
如果FlowDocument 不是根元素,该文档可以显示在FlowDocumentScrollViewer,FlowDocumentPageViewer或FlowDocumentReader控件中。 您还可以在RichTextBox控件中编辑FlowDocument。
名称 | 备注 | 权限 |
---|---|---|
BackgroundProperty | 标识 Background 依赖项属性。 | public static readonly |
ColumnGapProperty | 标识 ColumnGap 依赖项属性。 | public static readonly |
ColumnRuleBrushProperty | 标识 ColumnRuleBrush 依赖项属性。 | public static readonly |
ColumnRuleWidthProperty | 标识 ColumnRuleWidth 依赖项属性。 | public static readonly |
ColumnWidthProperty | 标识 ColumnWidth 依赖项属性。 | public static readonly |
FlowDirectionProperty | 标识 FlowDirection 依赖项属性。 | public static readonly |
FontFamilyProperty | 标识 FontFamily 依赖项属性。 | public static readonly |
FontSizeProperty | 标识 FontSize 依赖项属性。 | public static readonly |
FontStretchProperty | 标识 FontStretch 依赖项属性。 | public static readonly |
FontStyleProperty | 标识 FontStyle 依赖项属性。 | public static readonly |
FontWeightProperty | 标识 FontWeight 依赖项属性。 | public static readonly |
ForegroundProperty | 标识 Foreground 依赖项属性。 | public static readonly |
IsColumnWidthFlexibleProperty | 标识 IsColumnWidthFlexible 依赖项属性。 | public static readonly |
IsHyphenationEnabledProperty | 标识 IsHyphenationEnabled 依赖项属性。 | public static readonly |
IsOptimalParagraphEnabledProperty | 标识 IsOptimalParagraphEnabled 依赖项属性。 | public static readonly |
LineHeightProperty | 标识 LineHeight 依赖项属性。 | public static readonly |
LineStackingStrategyProperty | 标识 LineStackingStrategy 依赖项属性。 | public static readonly |
MaxPageHeightProperty | 标识 MaxPageHeight 依赖项属性。 | public static readonly |
MaxPageWidthProperty | 标识 MaxPageWidth 依赖项属性。 | public static readonly |
MinPageHeightProperty | 标识 MinPageHeight 依赖项属性。 | public static readonly |
MinPageWidthProperty | 标识 MinPageWidth 依赖项属性。 | public static readonly |
PageHeightProperty | 标识 PageHeight 依赖项属性。 | public static readonly |
PagePaddingProperty | 标识 PagePadding 依赖项属性。 | public static readonly |
PageWidthProperty | 标识 PageWidth 依赖项属性。 | public static readonly |
TextAlignmentProperty | 标识 TextAlignment 依赖项属性。 | public static readonly |
TextEffectsProperty | 标识 TextEffects 依赖项属性。 | public static readonly |
名称 | 备注 | 权限 |
---|---|---|
Background | 获取或设置要用于填充内容区域背景的 Brush。 | get; set; |
Blocks | 获取 FlowDocument 的内容的顶级 Block 元素。 | get; |
ColumnGap | 获取或设置列间隔值,该值指示 FlowDocument 中各列之间的间距。 | get; set; |
ColumnRuleBrush | 获取或设置用于绘制列之间标尺的 Brush。 | get; set; |
ColumnRuleWidth | 获取或设置隔线宽度。 | get; set; |
ColumnWidth | 获取或设置 FlowDocument 中列的所需最小宽度。 | get; set; |
ContentEnd | 获取表示 TextPointer 中内容末尾的 FlowDocument。 | get; |
ContentStart | 获取表示 TextPointer 中内容起始位置的 FlowDocument。 | get; |
FlowDirection | 获取或设置 FlowDocument 中内容流的相对方向。 | get; set; |
FontFamily | 获取或设置 FlowDocument 的首选最常用字体系列。 | get; set; |
FontSize | 获取或设置 FlowDocument 的顶级字号。 | get; set; |
FontStretch | 获取或设置 FlowDocument 的常用字体拉伸特征。 | get; set; |
FontStyle | 获取或设置 FlowDocument 的顶级字体样式。 | get; set; |
FontWeight | 获取或设置 FlowDocument 的顶级字体粗细。 | get; set; |
Foreground | 获取或设置要应用到 FlowDocument 的文本内容的 Brush。 | get; set; |
IsColumnWidthFlexible | 获取或设置一个值,该值指示 ColumnWidth 值是可变的还是固定的。 | get; set; |
IsEnabledCore | 获取 IsEnabled 的 FlowDocument 属性的值。 | get; |
IsHyphenationEnabled | 获取或设置一个值,该值指示是否启用文字的自动断字功能。 | get; set; |
IsOptimalParagraphEnabled | 获取或设置一个值,该值指示是否启用最佳段落布局功能。 | get; set; |
LineHeight | 获取或设置各行内容的高度。 | get; set; |
LineStackingStrategy | 获取或设置用于为 FlowDocument 中的每行文本确定行框的机制。 | get; set; |
LogicalChildren | 获取一个可循环访问 FlowDocument 的逻辑子级的枚举器。 | get; |
MaxPageHeight | 获取或设置 FlowDocument 中的页面的最大高度。 | get; set; |
MaxPageWidth | 获取或设置 FlowDocument 中的页面的最大宽度。 | get; set; |
MinPageHeight | 获取或设置 FlowDocument 中页面的最小高度。 | get; set; |
MinPageWidth | 获取或设置 FlowDocument 中的页面的最小宽度。 | get; set; |
PageHeight | 获取或设置 FlowDocument 中页面的首选高度。 | get; set; |
PagePadding | 获取或设置一个值,该值指示页面边界和页面内容之间填充空间的厚度。 | get; set; |
PageWidth | 获取或设置 FlowDocument 中的首选页宽。 | get; set; |
TextAlignment | 获取或设置一个值,该值指示文本内容的水平对齐方式。 | get; set; |
TextEffects | 获取或设置要应用于 FlowDocument 的文本的效果。 | get; set; |
Typography | 获取 FlowDocument 的文本内容的当前有效的版式变体。 | get; |
名称 | 备注 | 权限 |
---|---|---|
OnCreateAutomationPeer | 当在派生类中重写时, AutomationPeer 为 Windows Presentation Foundation (WPF) 基础结构提供特定的实现。 | protected |
OnPropertyChanged | 当存在于元素上的一个或多个依赖属性的有效值更改时被调用。 | protected |
SetDpi | 设置 FlowDocument 的 DPI 值,以对其进行重新度量和重新呈现。 | public |
名称 | 备注 |
---|---|
IServiceProvider.GetService | object IServiceProvider.GetService (Type serviceType); |
IDocumentPaginatorSource.DocumentPaginator | System.Windows.Documents.DocumentPaginator System.Windows.Documents.IDocumentPaginatorSource.DocumentPaginator { get; } |
IAddChild.AddChild | void IAddChild.AddChild (object value); |
IAddChild.AddText | void IAddChild.AddText (string text); |
<Window x:Class="FlowDocumentReaderDemo.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:FlowDocumentReaderDemo" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" Title="MainWindow" Width="800" Height="450" mc:Ignorable="d"> <FlowDocumentReader> <FlowDocument Background="LightGreen" FlowDirection="LeftToRight"> <Paragraph> <Bold> FlowDocumentReader是提供一种查看流内容的控件,该控件内置了对多种查看模式的支持。 </Bold> </Paragraph> <Paragraph> <Bold> FlowDocumentReader具有使用户能够在各种查看模式之间动态选择的功能,包括单页(一次页面)查看模式,一次两页(书本阅读格式)查看模式,以及连续滚动(无底)观看模式。如果您不需要在不同的查看模式之间动态切换的功能,可以使用固定在特定查看模式下的轻量级流内容查看器。 FlowDocumentPageViewer以单页查看模式显示流内容,而FlowDocumentScrollViewer以连续滚动模式显示流内容。有关可用显示模式的更多信息,请参见FlowDocumentReaderViewingMode。 </Bold> <Bold> Content Area -Content Area显示 FlowDocument Document 属性指定的的内容。 Tool Bar 工具栏停靠在Content Area的下方。 它承载用于搜索内容、导航页面、选择查看模式和更改缩放级别的控件。 Find Button “查找”按钮显示 "查找" 对话框,该对话框允许用户在 FlowDocumentReader 的内容中搜索指定的词或短语。 如果 IsFindEnabled 为false ,则不显示 " 查找 " 按钮。 有关详细信息,请参阅 Find。 Page Navigation Controls -页面导航控件包含一个按钮,用于跳转到下一页 (向下箭头) 或上一页 ("向上" 箭头) ,以及当前页码和总页数的指示器。 Viewing Mode Buttons -使用查看模式按钮,用户可以从可用的查看模式中进行选择。 有关详细信息,请参阅 ViewingMode。 Zoom Controls -通过单击加号或减号按钮,用户可以使用缩放控件来增加或减少缩放级别。 缩放控件还包括一个用于调整缩放级别的滑块。 有关详细信息,请参阅 Zoom。 </Bold> </Paragraph> <Paragraph> <Bold> FlowDocumentReader具有使用户能够在各种查看模式之间动态选择的功能,包括单页(一次页面)查看模式,一次两页(书本阅读格式)查看模式,以及连续滚动(无底)观看模式。如果您不需要在不同的查看模式之间动态切换的功能,可以使用固定在特定查看模式下的轻量级流内容查看器。 FlowDocumentPageViewer以单页查看模式显示流内容,而FlowDocumentScrollViewer以连续滚动模式显示流内容。有关可用显示模式的更多信息,请参见FlowDocumentReaderViewingMode。 </Bold> </Paragraph> <Paragraph> <Bold> Content Area -Content Area显示 FlowDocument Document 属性指定的的内容。 Tool Bar 工具栏停靠在Content Area的下方。 它承载用于搜索内容、导航页面、选择查看模式和更改缩放级别的控件。 Find Button “查找”按钮显示 "查找" 对话框,该对话框允许用户在 FlowDocumentReader 的内容中搜索指定的词或短语。 如果 IsFindEnabled 为false ,则不显示 " 查找 " 按钮。 有关详细信息,请参阅 Find。 Page Navigation Controls -页面导航控件包含一个按钮,用于跳转到下一页 (向下箭头) 或上一页 ("向上" 箭头) ,以及当前页码和总页数的指示器。 Viewing Mode Buttons -使用查看模式按钮,用户可以从可用的查看模式中进行选择。 有关详细信息,请参阅 ViewingMode。 Zoom Controls -通过单击加号或减号按钮,用户可以使用缩放控件来增加或减少缩放级别。 缩放控件还包括一个用于调整缩放级别的滑块。 有关详细信息,请参阅 Zoom。 </Bold> </Paragraph> </FlowDocument> </FlowDocumentReader> </Window>
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace FlowDocumentReaderDemo { /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } } }