2009-11-02 17 views
5

Qual è il modo migliore per stampare un BitmapImage? Vengo da uno sfondo in System.Drawing, quindi stavo pensando di convertirlo in un Bitmap e quindi di stamparlo, ma sto pensando che probabilmente c'è un modo migliore.Stampa di un bitmap WPFImmagine

Grazie!

risposta

5

Sulla base della risposta di Drew, è meglio misurare e disporre il contenitore che viene consegnato al metodo PrintVisual. Ciò impedirà di tagliare un'immagine che è più grande di un foglio di carta 8,5 x 11. Ecco un esempio di come Ho stampato un'immagine che era parzialmente visibile sullo schermo:

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 nel mio esempio potrebbe essere sostituito con qualsiasi contenitore UIElement come uno StackPanel, tela, griglia, ect. ImageViewer.Source deve essere impostato su BitmapImage pronto per essere stampato.

ho avuto l'idea da questa pagina: http://www.switchonthecode.com/tutorials/printing-in-wpf

+0

Grazie mille. Questo ha risolto il mio problema con la stampa di un'immagine. – user4134476

0

Check out the PrintDialog class. Tutto quello che dovresti fare è chiamare the PrintVisual method passando in un Image come immagine che ha il tuo BitmapImage come sorgente.

Si consiglia di impostare altre opzioni di stampa, ma le scoprirai mentre esplori PrintDialog e le relative API.

Problemi correlati