UI⑥Control族控件DocumentViewer

  • Post author:
  • Post category:其他



Object

->

DispatcherObject

->

DependencyObject

->

Visual

->

UIElement

->

FrameworkElement

->

Control

->

DocumentViewerBase

->DocumentViewer


DocumentViewer


表示一个文档查看控件,该控件可以承载分页的

FixedDocument

内容,例如

XpsDocument



自定义 DocumentViewer 控件

若要对多个

DocumentViewer

控件应用相同的属性设置,请使用

Style

属性。 您可以修改

ControlTemplate

默认值,为控件指定独特的外观。 有关创建

ControlTemplate

的详细信息,请参阅

通过创建 System.windows.controls.controltemplate> 自定义现有控件的外观

。 若要查看特定于

DocumentViewer

的部分和状态,请参阅

DocumentViewer 样式和模板

此控件的依赖属性可能由控件的默认样式设置。 如果按默认样式设置属性,则当控件出现在应用程序中时,属性可能会更改为默认值。 默认样式取决于应用程序运行时使用的桌面主题。 有关详细信息,请参阅

默认的 WPF 主题

名称 备注 权限
CanDecreaseZoomProperty 标识

CanDecreaseZoom

依赖项属性。
public static readonly
CanIncreaseZoomProperty 标识

CanIncreaseZoom

依赖项属性。
public static readonly
CanMoveDownProperty 标识

CanMoveDown

依赖项属性。
public static readonly
CanMoveLeftProperty 标识

CanMoveLeft

依赖项属性。
public static readonly
CanMoveRightProperty 标识

CanMoveRight

依赖项属性。
public static readonly
CanMoveUpProperty 标识

CanMoveUp

依赖项属性。
public static readonly
ExtentHeightProperty 标识

ExtentHeight

依赖项属性。
public static readonly
ExtentWidthProperty 标识

ExtentWidth

依赖项属性。
public static readonly
HorizontalOffsetProperty 标识

HorizontalOffset

依赖项属性。
public static readonly
HorizontalPageSpacingProperty 标识

HorizontalPageSpacing

依赖项属性。
public static readonly
MaxPagesAcrossProperty 标识

MaxPagesAcross

依赖项属性。
public static readonly
ShowPageBordersProperty 标识

ShowPageBorders

依赖项属性。
public static readonly
VerticalOffsetProperty 标识

VerticalOffset

依赖项属性。
public static readonly
VerticalPageSpacingProperty 标识

VerticalPageSpacing

依赖项属性。
public static readonly
ViewportHeightProperty 标识

ViewportHeight

依赖项属性。
public static readonly
ViewportWidthProperty 标识

ViewportWidth

依赖项属性。
public static readonly
ZoomProperty 标识

Zoom

依赖项属性。
public static readonly
名称 备注 权限
CanDecreaseZoom 获取一个值,该值指示

DocumentViewer

是否可以进一步缩小。
get;
CanIncreaseZoom 获取一个值,该值指示

DocumentViewer

是否可以进一步放大。
get;
CanMoveDown 获取一个值,该值指示

DocumentViewer

是否可以在文档中进一步向下移动。
get;
CanMoveLeft 获取一个值,该值指示

DocumentViewer

是否可以在文档中进一步向左移动。
get;
CanMoveRight 获取一个值,该值指示

DocumentViewer

是否可以在文档中进一步向右移动。
get;
CanMoveUp 获取一个值,该值指示

DocumentViewer

是否可以在文档中进一步向上移动。
get;
ExtentHeight 获取分页文档的整体垂直高度。 get;
ExtentWidth 获取分页文档的整体水平宽度。 get;
FitToHeightCommand 获取执行

FitToHeight()

操作的

RoutedUICommand

get;
FitToMaxPagesAcrossCommand 获取执行

MaxPagesAcross

操作的

RoutedUICommand

get;
FitToWidthCommand 获取执行

FitToWidth()

操作的

RoutedUICommand

get;
HorizontalOffset 获取或设置水平滚动条位置。 get; set;
HorizontalPageSpacing 获取或设置页面之间的水平间距。 get; set;
MaxPagesAcross 获取或设置一个值,该值定义要显示的最大页面列数。 get; set;
ShowPageBorders 获取或设置一个值,该值指示是否显示阴影页边框。 get; set;
VerticalOffset 获取或设置垂直滚动条的位置。 get; set;
VerticalPageSpacing 获取或设置显示页面之间的垂直间距。 get; set;
ViewportHeight 获取可滚动的内容区域的垂直大小。 get;
ViewportWidth 获取可滚动的内容区域的水平大小。 get;
ViewThumbnailsCommand 获取执行

ViewThumbnails()

操作的

RoutedUICommand

get;
Zoom 获取或设置文档缩放百分比。 get; set;
名称 备注 权限
DecreaseZoom 将文档内容缩小一个缩放级别。 public
Find 将焦点移到查找工具栏上,以搜索文档内容。 public
FitToHeight 使一个页面适合当前视区的高度。 public
FitToMaxPagesAcross 使文档适合

MaxPagesAcross

属性设置。
public
FitToWidth 使一个页面适合当前视区的宽度。 public
GetPageViewsCollection 返回当前显示的

DocumentPageView

元素的集合。
protected
IncreaseZoom 将文档内容放大一个缩放级别。 public
MoveDown 将文档内容向下滚动 16 个与设备无关的像素。 public
MoveLeft 将文档内容向左滚动 16 个与设备无关的像素。 public
MoveRight 将文档内容向右滚动 16 个设备独立像素。 public
MoveUp 将文档内容向上滚动 16 个与设备无关的像素。 public
OnApplyTemplate 响应对

ApplyTemplate()

方法的调用。
public
OnBringIntoView 响应来自

OnBringIntoView(DependencyObject, Rect, Int32)

实现的

DocumentViewerBase

方法。
protected
OnCreateAutomationPeer 创建并返回此

AutomationPeer

控件的

DocumentViewer

protected
OnDecreaseZoomCommand 响应对

DecreaseZoom()

方法的调用。
protected
OnDocumentChanged 当要显示的文档发生变化时对调用做出响应。 protected
OnFindCommand 响应对

Find()

方法的调用。
protected
OnFirstPageCommand 响应对

FirstPage()

方法的调用。
protected
OnFitToHeightCommand 响应对

FitToHeight()

方法的调用。
protected
OnFitToMaxPagesAcrossCommand 响应对

FitToMaxPagesAcross

方法的调用。
protected
OnFitToWidthCommand 响应对

FitToWidth()

方法的调用。
protected
OnGoToPageCommand 响应对

GoToPage(Int32)

方法的调用。
protected
OnIncreaseZoomCommand 响应对

IncreaseZoom()

方法的调用。
protected
OnKeyDown 响应

KeyDown

事件。
protected
OnLastPageCommand 响应对

LastPage()

方法的调用。
protected
OnMouseLeftButtonDown 响应

MouseLeftButtonDown

事件。
protected
OnMoveDownCommand 响应对

MoveDown()

方法的调用。
protected
OnMoveLeftCommand 响应对

MoveLeft()

方法的调用。
protected
OnMoveRightCommand 响应对

MoveRight()

方法的调用。
protected
OnMoveUpCommand 响应对

MoveUp()

方法的调用。
protected
OnNextPageCommand 响应对

NextPage()

方法的调用。
protected
OnPreviewMouseWheel 响应

PreviewMouseWheel

事件。
protected
OnPreviousPageCommand 响应对

PreviousPage()

方法的调用。
protected
OnScrollPageDownCommand 响应对

ScrollPageDown()

方法的调用。
protected
OnScrollPageLeftCommand 响应对

ScrollPageLeft()

方法的调用。
protected
OnScrollPageRightCommand 响应对

ScrollPageRight()

方法的调用。
protected
OnScrollPageUpCommand 响应对

ScrollPageUp()

方法的调用。
protected
OnViewThumbnailsCommand 响应对

ViewThumbnails()

方法的调用。
protected
ScrollPageDown 向下滚动一个视区。 public
ScrollPageLeft 向左滚动一个视区。 public
ScrollPageRight 向右滚动一个视区。 public
ScrollPageUp 向上滚动一个视区。 public
ViewThumbnails 显示页面的缩略图表示形式。 public

DocumentViewerBase

提供用于显示固定内容或流动内容(分别由

FixedDocument



FlowDocument

表示)的查看器的基类。


DocumentViewerBase

是一个最小基类,旨在仅提供在文档查看方案中通用的基本功能。 此基类不提供用户界面。

名称 备注 权限
CanGoToNextPageProperty 标识

CanGoToNextPage

依赖项属性。
public static readonly
CanGoToNextPagePropertyKey 标识

CanGoToNextPage

依赖属性键。
public static readonly
CanGoToPreviousPageProperty 标识

CanGoToPreviousPage

依赖项属性。
public static readonly
CanGoToPreviousPagePropertyKey 标识

CanGoToPreviousPage

依赖属性键。
public static readonly
DocumentProperty 标识

Document

依赖项属性。
public static readonly
IsMasterPageProperty 标识

IsMasterPage

附加属性。
public static readonly
MasterPageNumberProperty 标识

MasterPageNumber

依赖项属性。
public static readonly
MasterPageNumberPropertyKey 标识

MasterPageNumber

依赖属性键。
public static readonly
PageCountProperty 标识

PageCount

依赖项属性。
public static readonly
PageCountPropertyKey 标识

PageCount

依赖属性键。
protected static readonly
名称 备注 权限
CanGoToNextPage 获取一个值,该值指示此查看器是否能跳转到当前

Document

的下一页。
get;
CanGoToPreviousPage 获取一个值,该值指示此查看器是否能跳转到当前

Document

的上一页。
get;
Document 获取或设置要分页或由查看器显示的

IDocumentPaginatorSource

get;
LogicalChildren 获取查看器的逻辑树中子级的枚举器。 get;
MasterPageNumber 获取当前母版页的页码。 get;
PageCount 获取当前

Document

的总页数。
get;
PageViews 获取查看器所包含的活动

DocumentPageView

对象的只读集合。
get;
名称 备注 权限
CancelPrint 取消任何当前打印作业。 public
CanGoToPage 返回一个值,该值指示查看器是否能跳转到指定的页码。 public
FirstPage 导致查看器跳转到当前文档的第一页(由

Document

属性表示)。
public
GetIsMasterPage 返回指定的依赖对象的

IsMasterPage

附加属性值。
public
GetMasterPageView 返回此查看器的当前母版

DocumentPageView

protected
GetPageViewsCollection 创建并返回与当前显示文档(由

Document

属性表示)关联的

DocumentPageView

对象的新的只读集合。
protected
GoToPage 导致查看器跳转到指定页码。 public
InvalidatePageViews 导致要重新生成

PageViews

工作集合。
protected
LastPage 导致查看器跳转到当前文档的最后一页(由

Document

属性表示)。
public
NextPage 导致查看器跳转到当前文档的下一页(由

Document

属性表示)。
public


OnApplyTemplate

为查看器构建可视化树。 public
OnBringIntoView 返回一个值,该值指示查看器是否能跳转到指定的页码。 protected
OnCancelPrintCommand 导致查看器跳转到当前文档的第一页(由

Document

属性表示)。
protected
OnCreateAutomationPeer 返回指定的依赖对象的

IsMasterPage

附加属性值。
protected
OnDocumentChanged 返回此查看器的当前母版

DocumentPageView

protected
OnDpiChanged 创建并返回与当前显示文档(由

Document

属性表示)关联的

DocumentPageView

对象的新的只读集合。
protected
OnFirstPageCommand 导致查看器跳转到指定页码。 protected
OnGoToPageCommand 处理

GoToPage

路由命令。
protected
OnLastPageCommand 处理

LastPage

路由命令。
protected
OnMasterPageNumberChanged 只要修改

MasterPageNumber

属性就会调用此方法。
protected
OnNextPageCommand 处理

NextPage

路由命令。
protected
OnPageViewsChanged 只要修改此查看器的

DocumentPageView

对象(由

PageViews

属性表示)的工作集,就会调用此方法。
protected
OnPreviousPageCommand 处理

PreviousPage

路由命令。
protected
OnPrintCommand 处理

Print

路由命令。
protected
PreviousPage 导致查看器跳转到当前文档的上一页(由

Document

属性表示)。
public
Print 调用标准的“打印”对话框,此对话框可用于打印查看器的内容和配置打印首选项。 public
SetIsMasterPage 设置指定依赖对象上的

IsMasterPage

附加属性。
public
名称 备注


PageViewsChanged

当与此查看器(由

DocumentPageView

属性表示)关联的

PageViews

项目的集合更改时发生。
名称 备注


IServiceProvider.GetService

object IServiceProvider.GetService (Type serviceType);


IAddChild.AddChild

void IAddChild.AddChild (object value);


IAddChild.AddText

void IAddChild.AddText (string text);
名称 备注 对应方法


IsMasterPage

获取一个值,该值指示是否应将查看器中的子元素用作母版页。 GetIsMasterPage、SetIsMasterPage


简单范例

<Window x:Class="DocumentViewerDemo.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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:DocumentViewerDemo"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <DocumentViewer x:Name="myDocumentViewer">
    </DocumentViewer>
</Window>
using Microsoft.Win32;
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;
using System.Windows.Xps.Packaging;

namespace DocumentViewerDemo
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            OpenFileDialog dialog = new OpenFileDialog { Filter = "XPS 文档(*.xps)|*.xps" };
            if (dialog.ShowDialog() == true)
            {
                myDocumentViewer.Document = new XpsDocument(dialog.FileName, System.IO.FileAccess.Read).GetFixedDocumentSequence();

            }
        }
    }
}



版权声明:本文为hd51cc原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。