我编写了一个C#4.0 Windows窗体应用程序,它创建了两个专门用文本标签填充的面板。我想在我的应用程序中添加功能,以完全按照它们在表单上显示的方式打印这些面板,但我只想打印这些面板及其内容,没有背景或表单的其他部分。
This link作为概述特别有用,但到目前为止,我只能打印相当于窗体截屏的内容。整个表单包括,按钮,修剪,背景和所有。看起来我需要通过创建一个图形对象来“重建”表单(我通常使用这个术语,因为我不确定我需要使用哪些特定的图形相关类)并以某种方式将面板的内容传输到此对象
我的问题是:为了构建这个图形对象,我应该研究哪些类和/或方法?同样有用的是:在构建PrintDocument对象时,.NET框架或任何库中是否有任何方便的技巧可以自动使结果适合单个页面?
答案 0 :(得分:1)
好的,我找到了一种方法(爱到我的Perl兄弟):
将两个面板包裹在另一个父面板中。我们称这个小组为“parentPanel
”。创建一个大小为memoryBitmap
(parentPanel
)的位图(parentPanel.Size
)。
下一步:parentPanel.DrawToBitmap(memoryBitmap, new Rectangle(parentPanel.Location, parentPanel.Size
)
然后,在打印页面事件处理程序中:e.Graphics.DrawImage(memoryBitmap, 0, 0)
我会在其他人有更好主意的情况下保持开放。