WPF FlowDocumentまたはFixedDocumentを使用して、画面コントロールから印刷可能なページを作成するにはどうすればよいですか?
-
27-09-2019 - |
質問
アプリケーションで画面に表示されているが、他のテキストなどを再アレンジして補完する必要がある多くのWPFコントロール(Datagrid、チャートなど)を印刷しようとしています。
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);
}
所属していません StackOverflow