gpt4 book ai didi

WPF - 打印视觉效果时的分页

转载 作者:行者123 更新时间:2023-12-04 13:29:47 25 4
gpt4 key购买 nike

我有一个带框架的 WPF 窗口。我有一些代码可以使用 printdialog 和 printvisual 打印出框架的内容。但这只会打印屏幕上显示的内容,即使框架滚动且其他部分可用。

有没有办法添加分页并确保我的框架的整个内容都会打印出来。

或者是否有另一种方法来获取我的框架内容并打印它?即不使用printvisual?

最佳答案

是的。我已经这样做了。这不是很困难。

  • 将您的 Frame 包裹在 ScrollViewer 中,该 ScrollViewer 通常禁用其水平和垂直滚动
  • 当您准备好打印时,启用垂直滚动。这将导致 Frame 被告知它具有无限的垂直空间,因此它将渲染所有内容。然后调用 UpdateLayout() 以获取要更新的布局。
  • 实现 IDocumentPaginator 为每个页面返回相同的 Frame,但每次调整剪辑和 RenderTransform 以显示实际 Frame 的不同部分。
  • 使用您的自定义 IDocumentPaginator 打印

  • 上面的描述假设你想将frame的宽度固定为页面宽度,并垂直分页。这适用于网页,但不适用于电子表格。对于类似电子表格的内容,您可以将 ScrollViewer 设置为允许双向滚动,从而为每个方向的框架提供无限空间。在这种情况下,IDocumentPaginator 是相同的,只是选择了 RenderTransforms 和剪辑来进行水平和垂直迭代。

    这种技术实际上适用于任何 WPF 内容,而不仅仅是框架。

    另请参阅
    Paginated Printing of WPF Visuals

    关于WPF - 打印视觉效果时的分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2211302/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com