2012-01-17 15 views

答えて

3

これは、PrintDialog.PrintVisualメソッドを使用して行うことができます。

var capabilities = printDlg.PrintQueue.GetPrintCapabilities(printDlg.PrintTicket); 

//get scale of the print wrt to screen of WPF visual 
var scale = Math.Min(capabilities.PageImageableArea.ExtentWidth/this.ActualWidth, capabilities.PageImageableArea.ExtentHeight/this.ActualHeight); 

//Transform the Visual to scale 
this.LayoutTransform = new ScaleTransform(scale, scale); 

// Get the size of the printer page 
var sz = new Size(capabilities.PageImageableArea.ExtentWidth, capabilities.PageImageableArea.ExtentHeight); 

//update the layout of the visual to the printer page size. 
this.Measure(sz); 
this.Arrange(new Rect(new Point(capabilities.PageImageableArea.OriginWidth, capabilities.PageImageableArea.OriginHeight), sz)); 

//now print the visual to printer to fit on the one page. 
printDlg.PrintVisual(visual, String.Empty); 
+0

これは2つの票を持っていますが、本当に質問に答えていますか?視覚的(これ)がまだ印刷される前にスクリーンに表示されなければならないように見えます。 – MojoFilter

関連する問題