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