我正在尝试打印一些WPF控件(数据网格,图表等),这些控件在我的应用程序中显示在屏幕上,但需要重新排列并补充其他文本等。
使用WPF FlowDocument或FixedDocument似乎是撰写和打印文档的明显方法,但我很难实现这一目标。
我尝试从控件创建一个VisualBrush并将其用作矩形上的填充而没有成功(根本不显示矩形)。
有没有人使用FlowDocument / FixedDocument来执行此操作和/或有任何示例代码显示它是如何实现的?
答案 0 :(得分:0)
如果在打印之前渲染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);
}