Как я могу использовать WPF FlowDocument или FixedDocument для создания печатной страницы из элементов управления на экране?
Я пытаюсь напечатать несколько элементов управления WPF (сетка данных, диаграммы и т. Д.), Которые отображаются на экране в моем приложении, но которые необходимо перегруппировать и дополнить другим текстом и т. Д.
Использование WPF FlowDocument или FixedDocument кажется очевидным способом составления и печати документов, но я изо всех сил пытаюсь добиться этого.
Я попытался создать VisualBrush из элемента (ов) и использовать его в качестве заливки прямоугольника без успеха (прямоугольник вообще не отображается).
Кто-нибудь использовал FlowDocument/FixedDocument, чтобы сделать это, и / или есть пример кода, показывающего, как это достигается?
1 ответ
Обнаружено, что все работает нормально, если FlowDocument отображается перед печатью (например, если он размещен в FlowDocumentReader).
XAML
xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"
,
<d3:ChartPlotter x:Name="plotter">
<d3:Header TextBlock.FontSize="20">
Very simple chart
</d3:Header>
</d3:ChartPlotter>
,
<FlowDocumentReader>
<FlowDocument>
<Paragraph>
<Run>Graph Header</Run>
</Paragraph>
<BlockUIContainer>
<Rectangle x:Name="GraphRectangle" Height="300"/>
</BlockUIContainer>
</FlowDocument>
</FlowDocumentReader>
CS
public MainWindow()
{
InitializeComponent();
GraphRectangle.Fill = new VisualBrush(plotter);
}