2

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?

Şafak Gür
  • 7,045
  • 5
  • 59
  • 96

2 Answers2

5

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;
Clemens
  • 123,504
  • 12
  • 155
  • 268
  • 2
    You may of course put the document in a resource dictionary and then access it as static resource. – Clemens Aug 01 '13 at 15:15
5
<Grid>
    <Grid.Resources>
        <FlowDocument x:Key="YourFlowDoc">
            <Paragraph>
                <TextBox Text="See it's Easy!"/>
            </Paragraph>
        </FlowDocument>
    </Grid.Resources>
    <FlowDocumentReader Document="{StaticResource YourFlowDoc}" />
</Grid>
Martin
  • 5,165
  • 1
  • 37
  • 50
bRySaGeeK
  • 151
  • 2
  • 2