【问题标题】:How can I use a WPF FlowDocument or FixedDocument to compose a printable page from on screen controls?如何使用 WPF FlowDocument 或 FixedDocument 从屏幕控件组成可打印页面?
【发布时间】:2010-10-04 08:55:34
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: c# wpf printing flowdocument fixeddocument


    【解决方案1】:

    发现如果在打印之前渲染 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);
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-14
      • 1970-01-01
      相关资源
      最近更新 更多