2016-09-26 24 views
0

我有两个控制图像视图和画布。 我正在绘制rectangle.While采取截图我只得到图像不是矩形。WPF中的ScreenShot

使用下面的代码我得到

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

我硬编码的一切,画布与图像和矩形在图像上。你的代码适合我在Button.Click里面。 – AnjumSKhan

+0

你能截屏吗? –

+0

我可以用矩形保存图像。 – AnjumSKhan

回答

1

render调用完成渲染之前有一个no-op截图。 此外,我假设您可以在视口 中查看绘制的矩形,并且它只显示在屏幕截图中。如果不确定矩形的颜色与图像背景不同,

renderTargetBitmap.Render(canvas1); 
//no-op for rendering to complete before taking screenshot. 
_dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => { })); 
//screenshot code here. 
+0

有imageview在哪里的画布..我在画布上绘制矩形。只有图像它采取截图..上述解决方案没有为我工作 –