2010-10-04 2 views
1

Je tente d'imprimer un certain nombre de contrôles WPF (DataGrid, graphiques, etc.) qui sont à l'écran dans mon application, mais qui doivent être réorganisés et complété par un autre texte, etc.Comment puis-je utiliser un FlowFocument WPF ou FixedDocument pour composer une page imprimable à partir de contrôles à l'écran?

Utilisation du WPF ou FlowDocument FixedDocument semble être le moyen évident de composer et d'imprimer des documents, mais j'ai du mal à y parvenir.

J'ai essayé de créer un VisualBrush à partir du (s) contrôle (s) et de l'utiliser comme Fill sur un Rectangle sans succès (le Rectangle n'est pas affiché du tout).

Est-ce que quelqu'un a utilisé FlowDocument/FixedDocument pour le faire et/ou avez un exemple de code montrant comment cela a été réalisé?

Répondre

0

Nous avons constaté que cela fonctionne si le FlowDocument est rendu avant l'impression (par exemple s'il est hébergé dans un 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); 
    } 
Questions connexes