2013-12-16 72 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>