2009-11-02 156 views
5

什麼是打印BitmapImage的最佳方式?我來自System.Drawing的一個背景,所以我想把它轉換成一個Bitmap然後打印它,但我想這可能是一個更好的方法。打印WPF位圖圖像

謝謝!

回答

5

根據德魯的回答,最好測量和排列交給PrintVisual方法的容器。這會阻止大於8.5 x 11張紙張的圖像被切斷。下面是如何我印刷,這是屏幕上的部分可見的圖像的示例:

PrintDialog dlg = new PrintDialog(); 
bool? result = dlg.ShowDialog(); 

if (result.HasValue && result.Value) 
{ 
    ImageViewer.Measure(new Size(dlg.PrintableAreaWidth, dlg.PrintableAreaHeight)); 
    ImageViewer.Arrange(new Rect(new Point(0, 0), ImageViewer1.DesiredSize)); 

    dlg.PrintVisual(ImageViewer, "Print a Large Image"); 
} 

圖像瀏覽器在我的例子可以與任何的UIElement容器替代,例如一個StackPanel,帆布,網格,等。 ImageViewer.Source應該設置爲可以打印的BitmapImage。

我的想法從這個頁面: http://www.switchonthecode.com/tutorials/printing-in-wpf

+0

非常感謝你。這解決了我的打印圖像的問題。 – user4134476

0

結賬the PrintDialog class。您所需要做的就是撥打the PrintVisual method,以Image作爲視頻,將您的BitmapImage作爲來源。

您可能想要設置其他打印選項,但在探索PrintDialog和相關API時您會發現這些選項。