如何在UWP Windows 10应用程序中将InkCanvas渲染为图像?

RenderTargetBitmap类使用简单的Canvas + InkManager(在Windows 8.1中)将墨迹笔划渲染到图像。 UWP推出了InkCanvas和一个新的Inking API。 但是,似乎RenderTargetBitmap无法使用它。 当我尝试使用RenderAsync方法捕获墨迹笔划时,没有墨迹笔划只会呈现其他对象,如Rectangle等。

这是一个错误还是这个新的API不是以这种方式使用的? 如果没有,那么如何从InkCanvas渲染图像?

谢谢!

以下是我用Win2D解决这个问题的方法。 首先,将Win2D.uwp nuget包添加到您的项目中。 然后使用此代码:

 CanvasDevice device = CanvasDevice.GetSharedDevice(); CanvasRenderTarget renderTarget = new CanvasRenderTarget(device, (int)inkCanvas.ActualWidth, (int)inkCanvas.ActualHeight, 96); using (var ds = renderTarget.CreateDrawingSession()) { ds.Clear(Colors.White); ds.DrawInk(inkCanvas.InkPresenter.StrokeContainer.GetStrokes()); } using (var fileStream = await file.OpenAsync(FileAccessMode.ReadWrite)) await renderTarget.SaveAsync(fileStream, CanvasBitmapFileFormat.Jpeg, 1f); 

请尝试InkPresenter.StrokeContainer属性http://blogs.windows.com/buildingapps/2015/09/08/going-beyond-keyboard-mouse-and-touch-with-natural-input-10-by-10/