WPF Toolkit DataGrid
-
03-07-2019 - |
Pergunta
Eu quero mostrar conteúdo datagrid (linhas, colunas) no XPS document.I tem 20 colunas. Quando enviei datagrid para XPS com o método XPSDocumentWriter.Write, é apenas mostrar algumas colunas não todos de them.How pode i mostrar todas as colunas e linhas em XPS (como Xceed XPS datagrid exportador)
Thx
Solução
O problema é provavelmente com a largura de sua grade em relação de pagesize do XpsDocumentWriter.
WPF vai escrever no documento o elemento que você fornecer como é. Isso significa que ele não vai ser escalado em qualquer forma para caber o conteúdo da página.
Assumindo que o seu documento é o tamanho correto (permite carta suponho), você precisa determinar a área de impressão do documento e aplicar um RenderTransform à rede antes de escrevê-lo na XpsDocumentWriter
O código para fazê-lo seria algo 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);
EDIT: Mudou o código para que tanto o ScaleX e ScaleY ponto ao montante necessário para fazer o ajuste de grade completamente no XpsDocument