表示された TreeView を印刷する必要があります。
ルート TreeViewItem をビットマップにレンダリングすると、ツリー全体 (非表示ノードも含む) のイメージが得られます。次に、ビットマップを「ページ」に分割して印刷します。レンダリング コード:
m_Bitmap = new RenderTargetBitmap((int)l_RootTreeViewItem.ActualHeightDesiredSize.Width,
(int)l_RootTreeViewItem.ActualHeight, 96, 96,
PixelFormats.Pbgra32);
m_Bitmap.Render(l_RootTreeViewItem);
小さいサイズの樹木に適しています。ツリーが大きい場合、RenderTargetBitmapは「メモリ不足」例外になります。
したがって、メモリの問題を回避するために、ビジュアルの一部のみをレンダリングするという考え方です。レンダリングするビジュアルのどの部分が完璧になるかを選択できるRenderメソッド...
m_Bitmap.Render(l_RootTreeViewItem, xOffset, yOffset, width, height);
...しかし、存在しません。それを行う方法はありますか?