문제

XPS 문서에 Datagrid 컨텐츠 (행, 열)를 표시하고 싶습니다. 20 개의 열이 있습니다. xpsdocumentwriter.write 메소드를 사용하여 Datagrid를 XPS로 보냈을 때 모든 열만 표시되는 것은 아닙니다. XPS에서 모든 열과 행을 어떻게 표시 할 수 있습니까 (예 : Xuceing Datagrid XPS 내보내기)

고마워

도움이 되었습니까?

해결책

문제는 아마도 XPSDocumentWriter의 pageize와 관련하여 그리드의 너비에있을 것입니다.

WPF는 문서에 귀하가 제공하는 요소를 작성합니다. 즉, 페이지의 내용에 맞게 어떤 방식 으로든 조정되지 않습니다.

문서가 올바른 크기라고 가정하면 (문자라고 가정하자) 문서의 인쇄 가능한 영역을 결정하고 XPSDocumentWriter에 쓰기 전에 그리드에 RenderTransform을 적용해야합니다.

이를 수행하는 코드는 다음과 같습니다.

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