1. 属性
- 显示 XPS 文档:XPS 是一种 XML-based 的固定文档格式。DocumentViewer 可以加载和显示 XPS 文档,提供用户友好的界面来浏览和交互。
- 显示 FlowDocument:FlowDocument 是 WPF 的一种强大的文档模型,可以灵活地定义文档内容、布局和样式。DocumentViewer 可以加载和显示 FlowDocument,并支持文本搜索、页面缩放和打印等功能。
- 显示 FixedDocument:FixedDocument 是一种固定布局的文档格式,用于显示根据特定需求创建的多页文档。DocumentViewer 可以加载和显示 FixedDocument,支持缩放、滚动和打印。
- 内置导航和交互功能:DocumentViewer 提供了大量的导航和交互功能,如页面缩放、滚动、翻页、搜索、打印等。用户可以方便地操作文档内容来满足其需求。
2. 应用
DocumentViewer 的一些常见用途包括:
- 显示报告或文档:DocumentViewer 可以作为应用程序中显示报告或文档的容器。它可以加载和显示各种格式的文档,并提供了友好的界面供用户浏览、搜索和打印。
- 实现帮助文档:可以使用 DocumentViewer 来实现应用程序的帮助文档功能。在 DocumentViewer 中加载帮助文档,用户可以方便地浏览和搜索相关的信息。
- 创建阅读器应用:DocumentViewer 可以用于创建阅读器应用,如电子书阅读器。它支持文档布局、导航和交互,并可以加载和显示各种类型的文档。
3. 举例
下面是一个简单的示例,展示如何在 XAML 中使用 DocumentViewer 控件:
<Windowx:Class="WpfApp1.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="DocumentViewer Example"Height="450"Width="800"><Grid><DocumentViewerName="documentViewer"/></Grid></Window>
在代码中,可以将 DocumentViewer 控件的 Document 属性设置为要显示的文档对象。例如,在窗口的加载事件中,可以使用以下代码加载 XPS 文档:
privatevoidWindow_Loaded(objectsender, RoutedEventArgse) { // 创建一个FixedDocumentFixedDocumentfixedDocument=newFixedDocument(); // 添加页面到FixedDocument中varpageContent=newPageContent(); varfixedPage=newFixedPage(); fixedPage.Height=800; fixedPage.Width=600; fixedPage.Children.Add(newTextBlock { Text="Page 1", FontSize=36 }); pageContent.Child=fixedPage; fixedDocument.Pages.Add(pageContent); // 保存FixedDocument到XPS文件stringtempPath=Path.GetTempFileName(); using (XpsDocumentxpsDocument=newXpsDocument(tempPath, FileAccess.Write)) { XpsDocumentWriterxpsDocumentWriter=XpsDocument.CreateXpsDocumentWriter(xpsDocument); xpsDocumentWriter.Write(fixedDocument); } // 加载XPS文件到DocumentViewer控件using (XpsDocumentxpsDocument=newXpsDocument(tempPath, FileAccess.Read)) { documentViewer.Document=xpsDocument.GetFixedDocumentSequence(); } }
上述示例将会加载名为 "document.xps" 的 XPS 文档并在 DocumentViewer 中显示出来。