2009-03-03 7 views
1

Je souhaite afficher le contenu de la grille de données (lignes, colonnes) dans le document XPS. J'ai 20 colonnes. Lorsque j'ai envoyé DataGrid au format XPS avec la méthode XPSDocumentWriter.Write, juste montrer certaines colonnes ne sont pas tous them.How peut i afficher toutes les colonnes et les lignes de xps (comme Xceed DataGrid xps exportateurs)WPF toolkit datagrid

Thx

+0

Quel genre de résultats obtenez-vous? Combien de colonnes y a-t-il au total? Combien apparaissent par page? Pouvez-vous produire un petit jeu de code qui reproduit l'effet? –

+0

Joel, dans le fichier XPS, la moitié de ma grille de données s'affiche.Mais je veux toutes mes colonnes et lignes (par exemple: j'ai 20 colonnes, mais xps en montre 10). –

Répondre

0

Le problème est probablement avec la largeur de votre grille en relation avec la taille de page de XPSDocumentWriter. WPF écrira dans le document l'élément que vous fournissez tel quel. Cela signifie qu'il ne sera pas adapté au contenu de la page.

En supposant que votre document est la taille correcte (lets lettre suppose), vous devez déterminer la zone imprimable du document et appliquer une RenderTransform sur la grille avant de l'écrire dans le XpsDocumentWriter

Le code pour le faire serait quelque chose comme:

Grid grd = new Grid(); 
XpsDocumentWriter wrt = new XpsDocumentWriter(); 
//Bunch of code to manipulate your grid here 

//Now we calculate the scaling required: 
double ScaleX = PageWidth/grd.Width; //The page width must be in Device Independent Units 
double ScaleY = ScaleX; 

grd.RenderTransform = new ScaleTransform(ScaleX, ScaleY); 

wrt.Write(grd); 

EDIT: modifié le code de sorte que le ScaleX, et le point de scaleY à la quantité nécessaire pour rendre la grille adapter complètement dans le XpsDocument

+0

Merci pour votre solution Kiranu :) –

Questions connexes