2010-10-04 5 views
1

Я пытаюсь напечатать ряд элементов управления WPF (DataGrid, диаграммы и т.д.), которые находятся на экране в моем приложении, но которые должны быть перестроены и дополнены с другим текстом и т.д.Как я могу использовать WPF FlowDocument или FixedDocument для создания печатной страницы с экранных элементов управления?

Использование WPF FlowDocument или FixedDocument кажется очевидным способом компоновки и печати документов, но я изо всех сил стараюсь это сделать.

Я попытался создать 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); 
    }