private void printimage(System.Windows.Media.ImageSource bi) { var vis = new System.Windows.Media.DrawingVisual(); System.Windows.Media.DrawingContext dc = vis.RenderOpen(); dc.DrawImage(bi, new System.Windows.Rect { Width = bi.Width, Height = bi.Height }); dc.Close(); var pdialog = new System.Windows.Controls.PrintDialog(); // if (pdialog.ShowDialog() == true) { pdialog.PrintVisual(vis, "My Image"); } }