使用PrintDialog打印WPF画面时,Grid.Arrange()方法导致打印结果不正确

三五月儿 2014-01-08 04:56:05
我需要打印WPF画面中一个Grid控件中的所有内容,由于画面可以放大和缩小。
所以在打印前,会根据Grid控件的大小与打印纸张之间的关系,设置Grid的大小和位置,用到以下方法:
grid.Measure(toSize);
grid.Arrange(new Rect(center, toSize));
其中:
grid:为Grid类型。
toSize:Grid根据打印纸张大小调整后的大小,为Size类型。
center:Grid根据打印纸张大小计算的起点坐标。
再调用以下方法进行打印:
printDlg.PrintVisual(grid, title);
其中:printDlg为PrintDialog类型;
title为字符串类型的标题。

出现问题:Win7下正常打印,Win8下打印的结果会有部分内容没有显示。
怀疑:因为MSDN上面说Arrange通常会异步执行,所以怀疑是还没等wpf界面调整好更新完就开始了打印导致此问题。不知道有没有高人知道解决方法。
...全文
112 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧