How to show a flow document using a DocumentViewer?

Şafak Gür picture Şafak Gür · Aug 1, 2013 · Viewed 9.7k times · Source

I have a simple flow document in my resources, FlowDocument1.xaml:

<FlowDocument xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
          ColumnWidth="400" FontSize="14" FontFamily="Georgia">
    <Paragraph>
        Test
    </Paragraph>
</FlowDocument>

And I want to show this document in a DocumentViewer. I searched for a property that takes path but I couldn't find one. And the following throws an exception:

<DocumentViewer x:Name="TestViewer" Document="Resources/FlowDocument1.xaml" />

How can I show FlowDocument1.xaml in a DocumentViewer?

Answer

Clemens picture Clemens · Aug 1, 2013

First you cannot add a FlowDocument to a DocumentViewer because it only supports FixedDocument. You may use FlowDocumentScrollViewer or FlowDocumentPageViewer instead.

<FlowDocumentScrollViewer x:Name="TestViewer"/>

Then you have to set the Document property in code:

TestViewer.Document = Application.LoadComponent(
    new Uri("/Resources/FlowDocument1.xaml", UriKind.Relative)) as FlowDocument;