C# 使用XamlRenderingBackgroundTask渲染不在可视树中的图像

C# 使用XamlRenderingBackgroundTask渲染不在可视树中的图像,c#,xaml,uwp,C#,Xaml,Uwp,我尝试在不在可视树中的图像上使用以下代码: public async Task<CanvasBitmap> RenderImage() { Image img = new Image(); img.Source = _p._img; RenderTargetBitmap rtb = new RenderTargetBitmap(); await rtb.RenderAsync(img);

我尝试在不在可视树中的图像上使用以下代码:

    public async Task<CanvasBitmap> RenderImage()
    {
        Image img = new Image();
        img.Source = _p._img;

        RenderTargetBitmap rtb = new RenderTargetBitmap();
        await rtb.RenderAsync(img);
        IBuffer buf = await rtb.GetPixelsAsync();
        SoftwareBitmap sb = SoftwareBitmap.CreateCopyFromBuffer(buf, BitmapPixelFormat.Rgba16, (int)_p._width, (int)_p._height);
        CanvasBitmap cb = CanvasBitmap.CreateFromSoftwareBitmap(_p._resCreator, sb);

        return cb;
    }
公共异步任务呈现()
{
图像img=新图像();
img.Source=\u p.\u img;
RenderTargetBitmap rtb=新建RenderTargetBitmap();
等待rtb.RenderAsync(img);
IBuffer buf=等待rtb.GetPixelsAsync();
SoftwareBitmap sb=SoftwareBitmap.CreateCopyFromBuffer(buf,BitmapPixelFormat.Rgba16,(int)_p._width,(int)_p._height);
CanvasBitmap cb=CanvasBitmap.CreateFromSoftwareBitmap(\u p.\u resCreator,sb);
返回cb;
}
这给了我一个错误,我认为这是因为
图像
在可视化树中不存在。在做了一些研究之后,我得出结论,使用将允许我绕过这个问题。然而,这似乎给出了同样的错误


我的假设正确吗?这将允许我渲染一个不在可视化树中的图像(帮助文件似乎暗示了其他情况),如果不正确,是否有其他方法可以在不将图像添加到页面的情况下执行此类任务?

我也遇到了同样的问题。我解决这个问题的唯一方法是将元素添加到可视化树中,然后将其删除。
看一看这个

“给我一个错误”-哪一个?它给出了一个参数超出范围的异常,但它是由对象不在可视树中引起的