我是靠谱客的博主 朴实帆布鞋,最近开发中收集的这篇文章主要介绍UI⑥Control族控件FlowDocumentReaderFlowDocumentReaderFlowDocument简单范例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Object->DispatcherObject->DependencyObject->Visual->UIElement->FrameworkElement->Control->FlowDocumentReader


FlowDocumentReader

提供一种查看流内容的控件,该控件内置了对多种查看模式的支持。

FlowDocumentReader具有使用户能够在各种查看模式之间动态选择的功能,包括单页(一次页面)查看模式,一次两页(书本阅读格式)查看模式,以及连续滚动(无底)观看模式。如果您不需要在不同的查看模式之间动态切换的功能,可以使用固定在特定查看模式下的轻量级流内容查看器。 FlowDocumentPageViewer以单页查看模式显示流内容,而FlowDocumentScrollViewer以连续滚动模式显示流内容。有关可用显示模式的更多信息,请参见FlowDocumentReaderViewingMode。

下图显示了带有默认用户界面(UI)的FlowDocumentReader控件。

具有标注的屏幕快照: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
Print调用标准的“打印”对话框,此对话框可用于打印 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 为子内容强制实施强内容模型。 中包含的顶级子元素 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.DocumentPaginatorSystem.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 “查找”按钮显示 &quot;查找&quot; 对话框,该对话框允许用户在 FlowDocumentReader 的内容中搜索指定的词或短语。 如果 IsFindEnabled 为false ,则不显示 &quot; 查找 &quot; 按钮。 有关详细信息,请参阅 Find。
                    Page Navigation Controls -页面导航控件包含一个按钮,用于跳转到下一页 (向下箭头) 或上一页 (&quot;向上&quot; 箭头) ,以及当前页码和总页数的指示器。
                    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 “查找”按钮显示 &quot;查找&quot; 对话框,该对话框允许用户在 FlowDocumentReader 的内容中搜索指定的词或短语。 如果 IsFindEnabled 为false ,则不显示 &quot; 查找 &quot; 按钮。 有关详细信息,请参阅 Find。
                    Page Navigation Controls -页面导航控件包含一个按钮,用于跳转到下一页 (向下箭头) 或上一页 (&quot;向上&quot; 箭头) ,以及当前页码和总页数的指示器。
                    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();
        }
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

最后

以上就是朴实帆布鞋为你收集整理的UI⑥Control族控件FlowDocumentReaderFlowDocumentReaderFlowDocument简单范例的全部内容,希望文章能够帮你解决UI⑥Control族控件FlowDocumentReaderFlowDocumentReaderFlowDocument简单范例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部