Вопрос

Я хочу показать содержимое datagrid (строки, столбцы) в документе XPS.У меня есть 20 столбцов.Когда я отправил datagrid в XPS с помощью метода XpsDocumentWriter.Write , он просто показывает некоторые столбцы, а не все из них.Как я могу показать все столбцы и строки в xps (например, Xceed datagrid xps exporting)

Спасибо

Это было полезно?

Решение

Вероятно, проблема связана с шириной вашей сетки по отношению к размеру страницы XpsDocumentWriter.

WPF запишет в Документ элемент, который вы предоставляете, как есть.Это означает, что он никоим образом не будет масштабироваться в соответствии с содержимым страницы.

Предполагая, что ваш документ имеет правильный размер (допустим, буква), вам необходимо определить область документа для печати и применить RenderTransform к сетке, прежде чем записывать ее в XpsDocumentWriter

Код для этого был бы чем-то вроде:

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

Редактировать: Изменил код так, чтобы и scaleX, и scaleY указывали на величину, необходимую для полного размещения сетки в XpsDocument

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top