WPF - 将容器的内容克隆为几何

时间:2011-06-20 23:17:41

标签: c# .net wpf printing visualbrush

好吧,使用可视化刷试图从大画布的子部分打印出来的页面有很多坏运气。一般工作,但往往光栅化一些部分,并产生不良输出。 (我以前曾问过这个问题)。

所以现在我正在创建一堆具有相同内容的画布副本,然后向下压缩到单个部分以打印为单页。这很有效,但显然很慢,只有更多的页面才会变慢。

那么可能工作得很好的是,是否有某种方法可以做一些类似于视觉画笔的东西,而是让它将其“视图”中的内容复制为某种新的几何对象?我的画布的内容是线条,图像等的组合,所以最好的是能够定义画笔的视图并告诉它将所有矢量和光栅对象的交集副本显示为新的某种容器。

这将允许我使用单个画布,并在不同位置拍摄内容的“快照”以用于打印各个页面。

1 个答案:

答案 0 :(得分:0)

您可以使用RenderTargetBitmap获取Canvas的位图副本,然后裁剪您想要的部分。如果您特别需要矢量副本,则需要将画布写入XPS。

编辑:如果你想要一个矢量副本,你尝试过使用XamlWriter.Save,编辑Xaml,然后编辑XamlReader.Load吗?