【发布时间】:2010-12-15 16:50:51
【问题描述】:
我想创建一个 Window 对象,设置一些值,然后直接发送到打印机而不显示它。我认为这是正确的做法,但显示的是空白文档。
PrintDialog dlg = new PrintDialog();
ReportWindow rw = new ReportWindow(); //WPF Window object
var sz = new Size(96*8.5, 96*11); //size of a paper page, 8.5x11
rw.Measure(sz); rw.Arrange(new Rect(sz));
// rw.Show(); //want to keep it hidden
dlg.PrintVisual(rw, "report printout");
rw.Close();
为了验证打印代码是否正常,我将它放在表单加载事件中,调用 Show(),它工作正常。
【问题讨论】:
-
如果不渲染,我怀疑会生成 Visual。
-
如果不调用 Show() 就无法使其渲染?
-
只是一个疯狂的想法,如果您将窗口显示在屏幕外的某个位置,而不在任务栏中显示并且没有激活它会怎样?
-
可能有效;) 我目前正在调用 Show(),让它自己打印,然后自己调用 close。嘘。
-
如果 Visibility.Collapsed 会发生什么?