2013-12-16 34 views
1

将canvas保存到BMP文件(或任何其他类型)时遇到问题。InkCanvas到BitMap

我想救我InkCanvas这样的:

int margin = (int)canvas.Margin.Left; 
int width = (int)canvas.ActualWidth -margin; 
int height = (int)canvas.ActualHeight -margin; 
//render ink to bitmap 
RenderTargetBitmap renderBitmap = 
new RenderTargetBitmap(width, height, 96d, 96d, PixelFormats.Default); 
renderBitmap.Render(canvas); 
//save the ink to a memory stream 
BitmapEncoder encoder; 
encoder = new BmpBitmapEncoder(); 
encoder.Frames.Add(BitmapFrame.Create(renderBitmap)); 
encoder.Save(myStream); 

但我总是得到的图像从左侧和顶部,大小相等我窗口的黑色边框从点(0,0)我的画布。我做错了什么? enter image description here enter image description here

回答

0

你需要把它放到单独的容器(即进入Grid_。

0

我也有类似的问题,它看起来像你的利润是影响图像的渲染。

我相信canvas是InkCanvas的名称,因此为了避免黑色边框 - 您只需修改WPF框架并使用画布设置边距而不是使用InkCanvas:

<Grid Height="340" Width="445"> 
    <Canvas Background="Transparent" Margin="10,10,0,0"> 
     <InkCanvas Name="canvas" Height="320" Width="425"/> 
    </Canvas> 
</Grid>