我需要編寫自己的pdf查看器(UserControl)。我使用pdfium.dll。它的包裝是PdfiumService。該服務可以將頁面呈現給BitmapSource。 PdfViewer在ScrollViewer的VirtualizingStackPanel中顯示頁面。 任何想法如何做懶惰渲染爲PDF?問題是,如果pdf大約是20mb(1000頁),則渲染的頁面需要大約2GB的RAM。使用wpf渲染pdf
Virtual VirtualStackPanel可以幫我嗎?我沒有發現任何「BeginVirtualizing」或其他事件。任何簡單的方法來知道什麼項目正在顯示?
也許這樣的事情:
- 計算有多少頁面可以一次顯示。
- 請參閱ScrollViewer的偏移量。
- 計算頁面索引現在正在顯示。
- 呈現當前旁邊的5個頁面。
是否有任何現成的解決方案或一些提示或想法?
可以使用ItemConrol一個的ScrollViewer內,然後使用ScrollViewer中垂直偏移,您可以創建虛擬化的哪個頁面。 –
是的,當然。問題不在於它。我使用ScrollViewer和ItemsControl,ItemsControl.ItemsPanel是VirtualizingStackPanel。我知道如何將數據綁定到容器。有沒有辦法做我想要的?或者只用手計算偏移量和圖像大小? – DdarkSideE
我認爲沒有任何簡單的方法,因爲你必須也只加載那個在視圖中的頁面,所以你可以根據這個來計算 –