2011-09-28 2 views
6

FlowDocument에서 인쇄 할 코드를 작성하고 있습니다.인쇄시 여러 열 방지 FlowDocument

 PrintDialog printDialog = new PrintDialog(); 
     bool? result = printDialog.ShowDialog(); 
     if (result == true) 
     { 
      FlowDocument fd = new FlowDocument(); 
      fd.Blocks.Add(new Paragraph(new Run(String.Format("Message:\r\n{0}\r\n", txtMessage.Text)))); 
      fd.PageHeight = printDialog.PrintableAreaHeight; 
      fd.PageWidth = printDialog.PrintableAreaWidth; 
      printDialog.PrintDocument((fd as IDocumentPaginatorSource).DocumentPaginator, "print test"); 
     } 

이 코드는 한 페이지에 여러 열을 인쇄합니다. 이것을 피하는 방법?

답변

10

알아 냈습니다. FlowDocument의 ColumnWidth를 설정해야합니다.

fd.PagePadding = new Thickness(50); 
fd.ColumnGap = 0; 
fd.ColumnWidth = printDialog.PrintableAreaWidth; 
+1

감사합니다. 짧은 문서를 가지고 여기 왜 내 페이지의 절반 만 사용했는지 궁금합니다. 왜 그들은 두 열을 기본으로 사용했는지 궁금합니다. – Mishax