【发布时间】:2016-01-20 04:49:27
【问题描述】:
我创建了一个 winforms 用户控件,在 OnPaint 事件中进行了大量自定义绘画。现在我想打印这个控件。
- 是否有一种所见即所得的方法来将此控件放置在“文档”上并打印包含用户控件的文档?
或
- 当使用打印文档的 printpage() 事件时,我可以在“页面”上动态创建和定位我的用户控件并以某种方式调用我的用户控件的绘制方法吗?
【问题讨论】:
-
它是 wpf/xaml 用户控件吗?
-
周围有很多报表设计器产品,但对您的用户控件一无所知。简单的方法是公开一个采用 Graphics 对象的方法,将您的绘画代码移动到该方法中。现在您可以从您的 OnPaint() 方法 和 您的 PrintPage 事件处理程序调用它,同时在两者中传递 e.Graphics。在 PrintPage 事件处理程序中使用 Graphics.TranslateTransform() 将其移动到页面上所需的任何位置。如果您需要更大或更小,也许可以使用 ScaleTransform()。
-
好的,谢谢汉斯,这就是我的计划。我只是希望某种能够处理用户控件的框架/打印引擎
标签: c# printing user-controls