Następujący kod rzuca tajemniczy wyjątek System.ArgumentException z metody RenderAsync "Wartość nie mieści się w oczekiwanym zakresie." Jeśli z drugiej strony moje płótno jest częścią widocznego drzewa XAML, to działa. Czy nie można renderować niektórych XAML, które nie są wyświetlane na ekranie?W WinRT C# jak zapisać drzewo XAML poza ekranem przy użyciu RenderTargetBitmap?
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, że to odpowiedź będzie działać, ale bez powodzenia, myślę, że odnosi się tylko do WPF: Create WPF element offscreen and render to bitmap
UPDATE:
tej pory mój najlepszy pomysł jest umieszczenie płótna Chcę renderować na aktualnie widoczną stronę, ale umieszczam ją poniżej tego, co zwykle jest przyczyną UIElement, która wypełnia ekran, więc nie jest widoczna 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ć. Zobaczmy, czy ktokolwiek może zrobić lepiej