其实在WPF中保存图片是非常容易的,并且可以指定把任何对象或者子对象。你指定的对象和他的所有内部内容都会被输出到图片。
具体代码如下,其中“MainGrid"是一个Grid, 当然你可以指定任何XMAL中的对象,比如Canvas, Panel等等。
string fileName = @"snap.bmp";
System.IO.FileStream fs = new System.IO.FileStream(fileName, System.IO.FileMode.Create);
RenderTargetBitmap bmp = new RenderTargetBitmap((int)MainGrid.ActualWidth, (int)MainGrid.ActualHeight, 96d, 96d, PixelFormats.Pbgra32);
bmp.Render(MainGrid);
BitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bmp));
encoder.Save(fs);
fs.Close();