Image 在UWP中显示多个迷你版的彩色InkCanvas的最佳方式

Image 在UWP中显示多个迷你版的彩色InkCanvas的最佳方式,image,memory,uwp,render,inkcanvas,Image,Memory,Uwp,Render,Inkcanvas,我有一个问题来描述我的InkCanvas的许多迷你版本。在我的应用程序中,可以在InkCanvas上写字或画画。现在我想在GridView中描述所有创建的InkCanvas 但是在这个GridView中使用迷你版本,我无法创建足够的迷你版本 我用36个迷你版本对它进行了测试,在我展示了一个迷你版本并导航回来后,该应用程序每次都会崩溃,呈现相同的迷你InkCanvas,错误是:内存不足。因此我搜索了一篇文章,找到了这篇文章: 我检查了内存工作负载: var AppUsageLevel

我有一个问题来描述我的InkCanvas的许多迷你版本。在我的应用程序中,可以在InkCanvas上写字或画画。现在我想在GridView中描述所有创建的InkCanvas

但是在这个GridView中使用迷你版本,我无法创建足够的迷你版本

我用36个迷你版本对它进行了测试,在我展示了一个迷你版本并导航回来后,该应用程序每次都会崩溃,呈现相同的迷你InkCanvas,错误是:内存不足。因此我搜索了一篇文章,找到了这篇文章:

我检查了内存工作负载:

     var AppUsageLevel = MemoryManager.AppMemoryUsageLevel;
     var AppMemoryLimit = MemoryManager.AppMemoryUsageLimit;
并且内存有足够的可用空间。(这是一只虫子吗?)

因此,我尝试使用InkCanvas从网格渲染图像,但笔划没有渲染,所有图片都是空的。这样可以节省内存吗?

现在我的问题是:

有人能告诉我如何解决这个问题吗?最好的方法是什么?

提前非常感谢


Agredo

如果要预览图形,更好的方法是将它们渲染为位图,并在网格中显示位图,而不是在InkCanvas中显示多个复杂控件

以下是一些用于将墨水渲染为位图的代码:


您还需要将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);