我需要编写自己的 pdf 查看器(UserControl)。我为此使用 pdfium.dll。它的包装是 PdfiumService。此服务可以将页面呈现到 BitmapSource。PdfViewer 在 ScrollViewer 中的 VirtualizingStackPanel 中显示页面。任何想法如何为 pdf 进行延迟渲染?问题是如果 pdf 大约 20mb(1000 页),渲染页面需要大约 2gb 内存。
VirtualizingStackPanel 可以帮助我吗?我没有找到“BeginVirtualizing”或其他任何事件。有什么简单的方法可以知道现在正在显示什么项目?
也许是这样的:
- 计算一次可以显示多少页。
- 请参阅 ScrollViewer 的偏移量。
- 计算页面的索引现在显示。
- 在当前旁边渲染 5 页。
是否有任何现成的解决方案,或一些提示或想法?