Pregunta

Quiero mostrar el contenido de la red de datos (filas, columnas) en el documento XPS. Tengo 20 columnas. Cuando envié datagrid a XPS con el método XPSDocumentWriter.Write, solo muestra algunas columnas, no todas. ¿Cómo puedo mostrar todas las columnas y filas en xps (como Xceed datagrid xps export)?

Thx

¿Fue útil?

Solución

El problema probablemente se deba al ancho de la cuadrícula en relación con el tamaño de página de XPSDocumentWriter.

WPF escribirá en el Documento el elemento que proporcione tal como está. Eso significa que no se escalará de ninguna manera para adaptarse al contenido de la página.

Suponiendo que su documento tiene el tamaño correcto (supongamos que es una letra), debe determinar el área imprimible del documento y aplicar un RenderTransform a la cuadrícula antes de escribirlo en XPSDocumentWriter

El código para hacerlo sería algo así como:

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

EDITAR: cambió el código para que tanto ScaleX como ScaleY apunten a la cantidad necesaria para que la cuadrícula se ajuste completamente en el XpsDocument

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top