1
我必須打印一個顯示的TreeView。如何呈現(位圖)只有一部分的Visual?
將根TreeViewItem呈現爲位圖,爲我提供了整個(甚至不可見的節點)樹的圖像。然後我將該位圖分成「頁面」進行打印。渲染代碼:
m_Bitmap = new RenderTargetBitmap((int)l_RootTreeViewItem.ActualHeightDesiredSize.Width,
(int)l_RootTreeViewItem.ActualHeight, 96, 96,
PixelFormats.Pbgra32);
m_Bitmap.Render(l_RootTreeViewItem);
適用於小尺寸樹木。如果樹很大,RenderTargetBitmap結果「內存不足」異常。
所以,這個想法是渲染視覺的一部分,以避免內存問題。一個渲染方法,在那裏我可以選擇的視覺呈現將是完美的哪一部分?
m_Bitmap.Render(l_RootTreeViewItem, xOffset, yOffset, width, height);
...但不存在。有沒有辦法做到這一點?
感謝尼古拉,你的方法效果。現在我有很多RenderTargetBitmap.Render調用,打印速度很慢,但是是另一個問題(我們需要硬件加速渲染)。 – SBertoli 2012-04-25 14:31:18
你知道你可以直接打印圖像嗎?它更快,看起來更好,因爲它是矢量打印(而不是位圖打印)。 – 2012-04-25 15:10:45
在目前的情況下,我必須使用非WPF報告庫並使用位圖。你在談論WPF(WPS)文檔嗎? – SBertoli 2012-04-26 05:49:24