我有两个控制图像视图和画布。 在图像上我绘制矩形。虽然截图我只是得到图像而不是矩形。
使用下面的代码我得到黑色图像
int Width = (int)canvas1.RenderSize.Width;
int Height = (int)canvas1.RenderSize.Height;
RenderTargetBitmap renderTargetBitmap =
new RenderTargetBitmap(Width, Height, 96, 96, PixelFormats.Pbgra32);
renderTargetBitmap.Render(canvas1);
PngBitmapEncoder pngImage = new PngBitmapEncoder();
pngImage.Frames.Add(BitmapFrame.Create(renderTargetBitmap));
using (Stream fileStream = File.Create(filePath))
{
pngImage.Save(fileStream);
}
如果我用图像替换画布只有图像来了。 如何截取包含两个控件的屏幕截图?
答案 0 :(得分:1)
在no-op
调用渲染完成之后,在获取屏幕截图之前有一个render
。
我也假设你能够在视口中查看绘制的矩形
它只是没有出现在屏幕截图中。如果不确定矩形的颜色与图像背景不同。
renderTargetBitmap.Render(canvas1);
//no-op for rendering to complete before taking screenshot.
_dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => { }));
//screenshot code here.