DocumentViewer with Annotations XML-Store Sample

DocViewerAnnotationsXml shows how to read an XML Paper Specification (XPS) document into a DocumentViewer control and then enable support for adding user-created text note, ink note, and highlight annotations. In this example, user annotations are stored in an XML file separate from the XPS document.   

When executed, the sample displays a menu bar with a "File | Open..." option. When "Open..." is selected, a "File Open..." dialog is displayed allowing the user to browse and choose an XpsDocument container file to open (a sample XML Paper Specification (XPS) document file is provided).

When a document is opened, its content is displayed in the DocumentViewer control within the main application window. Within the DocumentViewer control you can select a block text for adding comments and annotations. Right-clicking on the selected text displays the Annotations context menu allowing you to choose the type of annotation to create: "Highlight", "Text Note", or "Ink Note" annotation. Once the annotation type is selected the annotation highlight or form displays on the DocumentViewer control. You can add personal comments to text note or ink note annotations. In the DocViewerAnnotationsXml sample, user annotations are stored in a separate annotations.xml file in the same folder with the XML Paper Specification (XPS) document.

The DocViewerAnnotationsXml sample source code consists of four files:

  • MyApp.xaml - Extensible Application Markup Language (XAML) resources for the application (none in this sample).

  • MyApp.xaml.cs - Code-behind for creating and displaying the application window.

  • Window1.xaml - XAML declarations defining the elements of the application window: main menu, menu commands, DocumentViewer control, DocumentViewer annotations context menu, and context menu commands.

  • Window1.xaml.cs - Code-behind supporting the user interface for the main menu and context menu commands.

A project file and sample XPS document are also provided. To examine the contents of the XPS document and the files contained within, simply change the document file extension from .xps to .zip and then open the file with the Zip utility.

This sample demonstrates a specific feature of the Windows Presentation Foundation and, consequently, does not follow application development best practices. For comprehensive coverage of Windows Presentation Foundation (WPF) and Microsoft .NET Framework application development best practices, refer to the following as appropriate:

Accessibility - Accessibility Best Practices

Security - Windows Presentation Foundation Security

Localization - WPF Globalization and Localization Overview

Download sample

Building the Sample

  • Install the Windows Software Development Kit (SDK) and open its build environment command window. On the Start menu, point to All Programs, Microsoft Windows SDK, and then click CMD Shell.

  • Download the sample, usually from the software development kit (SDK) documentation, to your hard disk drive.

  • To build the sample from the build environment command window, go to the source directory of the sample. At the command prompt, type MSBUILD.

  • To build the sample in Microsoft Visual Studio, load the sample solution or project file and then press CTRL+SHIFT+B.

Running the Sample

  • To run the compiled sample with debugging in Visual Studio, press F5.

  • To run the sample from a CMD Shell command window, execute the .exe file located in the source folder of the sample.

See Also

Tasks

Creating an XPS Document Sample

Saving an XPS Document Sample

Printing an XPS Document

Concepts

Documents in Windows Presentation Foundation