2009-11-02 16 views
5

BitmapImage yazmanın en iyi yolu nedir? System.Drawing'deki bir arka plandan geliyorum, bu yüzden onu bir Bitmap'e dönüştürmeyi ve sonra yazdırmayı düşünüyordum, ama muhtemelen daha iyi bir yol olduğunu düşünüyorum.WPF yazdırma BitmapImage

Teşekkürler!

cevap

5

Drew'un cevabı üzerine inşa etmek, PrintVisual yöntemine verilen kabı ölçmek ve düzenlemek en iyisidir. Bu, 8,5 x 11 sayfalık bir kağıdın kesilmesinden daha büyük bir görüntüyü önleyecektir. ect bir stackpanel, tuval, ızgara, benim örnekte

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"); 
} 

ImageViewer herhangi UIElement kap ile değiştirilebilir: Burada ekran kısmen görünür bir görüntü baskılı nasıl bir örneğidir. ImageViewer.Source, yazdırılmaya hazır BitmapImage olarak ayarlanmalıdır.

ben bu sayfadan fikrim var: http://www.switchonthecode.com/tutorials/printing-in-wpf

+0

Çok teşekkür ederim. Bu, bir görüntü basarken sorunumu çözdü. – user4134476

0

the PrintDialog class'a bakın. Yapmanız gereken tek şey, numaralı telefondan, BitmapImage kaynağınız olan bir kaynak olarak geçen the PrintVisual method numarayı aramaktır.

Diğer yazdırma seçeneklerini ayarlamak isteyebilirsiniz, ancak PrintDialog ve ilgili API'leri keşfettikçe bunları keşfedeceksiniz.