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 |
为查看器构建可视化树。 | 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 |
处理 路由命令。 |
protected |
PreviousPage |
导致查看器跳转到当前文档的上一页(由 Document 属性表示)。 |
public |
调用标准的“打印”对话框,此对话框可用于打印查看器的内容和配置打印首选项。 | public | |
SetIsMasterPage |
设置指定依赖对象上的 IsMasterPage 附加属性。 |
public |
名称 | 备注 |
---|---|
当与此查看器(由 DocumentPageView 属性表示)关联的 PageViews 项目的集合更改时发生。 |
名称 | 备注 |
---|---|
object IServiceProvider.GetService (Type serviceType); | |
void IAddChild.AddChild (object value); | |
void IAddChild.AddText (string text); |
名称 | 备注 | 对应方法 |
---|---|---|
获取一个值,该值指示是否应将查看器中的子元素用作母版页。 | 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();
}
}
}
}