FlowDocumentReader引发System.InvalidOperationException

时间:2019-11-19 08:30:26

标签: c# wpf flowdocumentreader

我有一个单击按钮打开的窗口:

previewWindow = new UsrCntrls.PreviewWindow();
previewWindow.DataContext = this;
previewWindow.Show();

并在xaml上显示了这些信息:

<Window x:Class="Client.UsrCntrls.PreviewWindow"
    ...>   
  <Grid>
      <Grid.RowDefinitions>
          <RowDefinition Height="Auto"/>
          <RowDefinition Height="*"/>
      </Grid.RowDefinitions>
      <Button Content="Print" Command="{Binding Print}"/>
      <!--<FlowDocumentReader Document="{Binding Doc}" Grid.Row="1"/>-->
      <FlowDocumentPageViewer Document="{Binding Doc}" Grid.Row="1"/>
  </Grid>
</Window>

使用FlowDocumentPageViewer中的Grid.Row=1,我可以打开和关闭此窗口,次数不限。如果我使用FlowDocumentReader而不是FlowDocumentPageViewer,则可以打开和关闭它一次,而不会出现问题。当我第二次单击按钮重新打开它时,出现此错误:

  

System.InvalidOperationException:'指定的元素已经是   另一个元素的逻辑子级。首先断开连接。'

如何解决这个难题?

1 个答案:

答案 0 :(得分:-1)

解决方案是:

<FlowDocumentReader Document="{Binding Doc, Mode=OneTime}" Grid.Row="1"/>