2010-10-04 114 views
1

我試圖打印數量都在屏幕上我的應用程序,但需要加以重新安排,並輔以其他文本等如何使用WPF FlowDocument或FixedDocument從屏幕控件組成可打印頁面?

使用WPF的FlowDocument或WPF控件(DataGrid,圖表等)固定文檔似乎是撰寫和打印文檔的顯而易見的方式,但我努力實現這一目標。我試過從控件(s)創建一個VisualBrush並使用它作爲填充矩形沒有成功(矩形不顯示在所有)。

有沒有人使用過FlowDocument/FixedDocument來做到這一點和/或有任何示例代碼顯示它是如何實現的?

回答

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); 
    }