The following code throws a cryptic System.ArgumentException from the RenderAsync method \"Value does not fall within the expected range.\" If on the other hand my Canvas is
satur9nine's solution to put the rendered UI tree somewhere behind an opaque foreground seems to be the only supported solution. You could also fiddle with the opacity of the parent element to avoid having it showing up. Another option is to render it yourself with Direct2D or use something like the WinRTXamlToolkit.Composition.Render()
methods from WinRT XAML Toolkit.
WinRTXamlToolkit.Composition
namespace has this extension that works. Just call this method:
await WriteableBitmapRenderExtensions.RenderToPngStream(element);