Displaying Fixed Documents
The easiest way to display an XPS file is to use the XPS viewer
application supplied with the .NET 3.0 Framework. This viewer runs when
you double-click on an XPS file. As mentioned earlier, Microsoft also
supplies a free viewer for displaying documents on machines without the
framework installed. However, it is sometimes useful to be able to
display an XPS file within an application. WPF supplies the DocumentViewer control for this. Simply set
its Document property to refer to
either a FixedDocument or a FixedDocumentSequence, and it will render the
document, providing navigation and zoom controls. Example 15-39 shows a simple window containing
a DocumentViewer.
Example 15-39. Window with DocumentViewer
<Window x:Class="ShowFixedDocument.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Show FixedDocument" Height="300" Width="300">
<DocumentViewer x:Name="viewer" />
</Window>Given this XAML, the code-behind file can load an XPS document as shown in Example 15-40.
Example 15-40. Loading an XPS document into a DocumentViewer
string docPath = Environment.GetCommandLineArgs( )[1]; XpsDocument doc = new XpsDocument(docPath, FileAccess.Read); viewer.Document = doc.GetFixedDocumentSequence( );
This reads the XPS file specified by the first command-line
parameter. You could also use a FixedDocument or FixedDocumentSequence built from scratch.
Figure 15-8 shows the XPS specification ...