Набор данных WPF toolkit datagrid
-
03-07-2019 - |
Вопрос
Я хочу показать содержимое 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