在Canvas放有图片、文字等内容,如何将整个Canvaw打印/打印预览?请高手指点~~

解决方案 »

  1.   

    即将整个Canvas打印成一张图片
      

  2.   


     private void printBtn_Click(object sender, RoutedEventArgs e)
            { 
                PrintDialog pDialog = new PrintDialog();            if ((bool)pDialog.ShowDialog().GetValueOrDefault())
                {
                    DrawingVisual vis = new DrawingVisual();
                    DrawingContext dc = vis.RenderOpen();
                    FrameworkElement fe = ImageCanvas as FrameworkElement;//ImageCanvas为Canvas控件
                    RenderTargetBitmap bitmapImage = new RenderTargetBitmap((int)fe.ActualWidth, (int)fe.ActualHeight, 96, 96, PixelFormats.Pbgra32);
                    bitmapImage.Render(ImageCanvas);
                    dc.DrawImage(bitmapImage, new Rect(new Point(0, 0), new Point((int)fe.ActualWidth, (int)fe.ActualHeight)));
                    
                    dc.Close();                pDialog.PrintVisual(vis, "设计图");
                }
            }