1

我正在尝试在我的应用程序的屏幕上打印一些 WPF 控件(数据网格、图表等),但需要重新排列和补充其他文本等。

使用 WPF FlowDocument 或 FixedDocument 似乎是撰写和打印文档的明显方式,但我正在努力实现这一目标。

我尝试从控件创建一个 VisualBrush 并将其用作矩形上的填充但没有成功(矩形根本不显示)。

有没有人使用 FlowDocument/FixedDocument 来执行此操作和/或有任何示例代码显示它是如何实现的?

4

1 回答 1

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);
    }
于 2010-10-05T20:05:47.073 回答