私自身のPDFビューア(UserControl)を作成する必要があります。私はpdfium.dllを使っています。そのラッパーはPdfiumServiceです。このサービスは、ページをBitmapSourceにレンダリングできます。 PdfViewerはScrollViewerのVirtualizingStackPanelにページを表示します。 どのように私は怠惰なPDFのレンダリングを行うことができますか?問題は、pdfが約20MB(1000ページ)でレンダリングされたページが約2GBのRAMを占める場合です。wpfを使用してPDFをレンダーする
VirtualizingStackPanelは私を助けますか?私は "BeginVirtualizing"または何か他の何らかのイベントを見つけませんでした。どのアイテムが現在表示されているかを簡単に知る方法は?
たぶんそのような何か:一度に表示することができますどのように多くのページ
- 計算。
- ScrollViewerのオフセットを参照してください。
- ページのインデックスが表示されていることを計算します。
- 現在のページの横に5ページをレンダリングします。
解決策やヒント、またはこれに関するアイデアはありますか?
表示ページへcustomコントロールを使用しますが、仮想化を作成することができますオフセット。 –
はい、確かです。質問はそれに関するものではありません。私はそれでScrollViewerとItemsControlを使用し、それ以外のItemsControl.ItemsPanelはVirtualizingStackPanelです。データをコンテナにバインドする方法はわかっています。私が欲しいことをやり遂げる方法がありますか?または、オフセットと画像のサイズを手だけで計算しますか? – DdarkSideE
私はあなたがそれに基づいて計算することができるように、表示されているページだけをロードする必要があるので、簡単な方法はないと思う。 –