W WinRT C # jak mogę zapisać pozaekranowe drzewo XAML przy użyciu RenderTargetBitmap?

Poniższy kod generuje tajemniczy wyjątek System.ArgumentException z metody RenderAsync „Wartość nie mieści się w oczekiwanym zakresie”. Jeśli z drugiej strony moje Canvas jest częścią widocznego drzewa XAML, to działa. Czy renderowanie XAML, które nie jest wyświetlane na ekranie, jest niemożliwe?

Canvas c = new Canvas();
c.Width = 40;
c.Height = 40;
c.Background = new SolidColorBrush(Color.FromArgb(0xff, 0x80, 0xff, 0x80));

RenderTargetBitmap x = new RenderTargetBitmap();
await x.RenderAsync(c);

Prawie myślałem, że ta odpowiedź zadziała, ale nie mam szczęścia, myślę, że dotyczy to tylko WPF:Utwórz element WPF poza ekranem i renderuj do mapy bitowej

AKTUALIZACJA:

Jak dotąd moim najlepszym pomysłem jest umieszczenie kanwy, którą chcę renderować, na aktualnie widocznej stronie, ale umieszczenie jej poniżej tego, co zwykle jest głównym UIElementem, który wypełnia ekran, aby nie był widoczny dla użytkownika:

<Grid>
    <Canvas x:Name="HiddenCanvas"/>
    <Grid x:Name="mainElement" Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
    </Grid>
</Grid>

To nie jest piękne, ale wydaje się działać. Pozwala zobaczyć, czy ktoś może zrobić lepiej

questionAnswers(2)

yourAnswerToTheQuestion