以下代碼從RenderAsync方法拋出一個神祕的System.ArgumentException「值不在預期範圍內」。另一方面,如果我的Canvas是可見的XAML樹的一部分,它就可以工作。是否不可能呈現某些未在屏幕上顯示的XAML?在WinRT C#中,如何使用RenderTargetBitmap保存離屏XAML樹?
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);
我差點以爲這個答案會的工作,但沒有運氣,我想這僅適用於WPF:Create WPF element offscreen and render to bitmap
UPDATE:
到目前爲止,我的最好的辦法是把畫布我想渲染到當前可見的頁面中,但將其放置在通常爲填充屏幕的根UIElement下方,以便用戶不可見:
<Grid>
<Canvas x:Name="HiddenCanvas"/>
<Grid x:Name="mainElement" Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
</Grid>
</Grid>
這不是很美,但它似乎工作。讓我們看看是否有人可以做得更好