WPF FlowDocumentまたはFixedDocumentを使用して、画面コントロールから印刷可能なページを作成するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/3853803

質問

アプリケーションで画面に表示されているが、他のテキストなどを再アレンジして補完する必要がある多くの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);
    }
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top