最近的工做中,用到了WPF调用Winform控件spa
可是在保存XAML页面的时候发现了问题,就是Winform页面黑黑的,没有任何渲染的波形曲线。code
查了缘由,大概的意思是指渲染的方式不同,因此会有这个问题,那只能转变思路,用截图的方式去作,就是把要打印的XAML里的控件,进行按照Windows定位,而后进行截图,保存。orm
public static System.Drawing.Bitmap GetScreenSnapshot(FrameworkElement fe) { try { //转换到屏幕坐标系之后,进行截图 Point point = fe.PointToScreen(new Point(0, 0)); System.Drawing.Rectangle rc = new System.Drawing.Rectangle((int)point.X, (int)point.Y, (int)fe.ActualWidth, (int)fe.ActualHeight); var bitmap = new System.Drawing.Bitmap(rc.Width, rc.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb); using (System.Drawing.Graphics memoryGrahics = System.Drawing.Graphics.FromImage(bitmap)) { memoryGrahics.CopyFromScreen(rc.X, rc.Y, 0, 0, rc.Size, System.Drawing.CopyPixelOperation.SourceCopy); } return bitmap; } catch (Exception ex) { return null; } }
一样的,打印XAML页面的时候,也有这个问题,用了截图的方式进行打印内容的填充。blog