WPF Инструментарий DataGrid - PullRequest
1 голос
/ 03 марта 2009

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

Thx

1 Ответ

0 голосов
/ 03 сентября 2009

Проблема, вероятно, связана с шириной вашей сетки относительно размера страниц 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

...