1

我编写了一个 C# 4.0 Windows 窗体应用程序,它创建了两个面板,这两个面板都专门填充了文本标签。我想向我的应用程序添加功能,以完全按照它们在表单上的显示方式打印这些面板,但我只想打印这些面板及其内容,没有背景或表单的其他部分。

此链接作为概述特别有用,但到目前为止,我只能打印相当于表单屏幕截图的内容。包括整个表单,按钮,修剪,背景等等。看起来我需要通过创建一个图形对象来“重建”表单(我一般使用这个术语,因为我不确定我需要使用哪个特定的图形相关类)并以某种方式将面板的内容转移到这个目的。

我的问题是:为了构建这个图形对象,我应该研究哪些类和/或方法?了解也很有帮助:在构建 PrintDocument 对象时,.NET 框架或任何库中是否有任何方便的技巧可以自动将结果适合单个页面?

4

1 回答 1

1

好的,我找到了一种方法(喜欢我的 Perl 兄弟):

将两个面板包装在另一个父面板中。我们称这个面板为“ parentPanel。” 创建一个memoryBitmap大小为parentPanel( ) 的位图 ( parentPanel.Size)。

下一个parentPanel.DrawToBitmap(memoryBitmap, new Rectangle(parentPanel.Location, parentPanel.Size:)

然后,在打印页面事件处理程序中:e.Graphics.DrawImage(memoryBitmap, 0, 0)

如果其他人有更好的想法,我会保持开放状态。

于 2012-11-05T02:54:44.157 回答