在调用PrintDialog的函数 PrintVisual(Visual visual, string description)打印某个Visual对象时,遇到一个问题,如果这个Visual有滚动条,即UserView不能显示全部Visual时,当滚动条拖动到中下部分时,只能打印出部分内容。
可以用以下语句解决这个问题:(其中 this指需要打印的Visual,如Canvas)
PrintDialog printDialog = new PrintDialog();
this.Measure(new Size(printDialog.PrintableAreaWidth,printDialog.PrintableAreaHeight));
this.Arrange(new Rect(new Point(0, 0), this.DesiredSize));
printDialog.PrintVisual(this, "WPF Diagram");