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
Grazie mille. Questo ha risolto il mio problema con la stampa di un'immagine. – user4134476