次のコードは、RenderAsync方法から潜在System.ArgumentExceptionの「値が期待範囲内にない。」スロー一方、私のキャンバスが目に見えるXAMLツリーの一部であれば動作します。画面に表示されないXAMLをレンダリングすることは不可能ですか?は、どのように私は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>
綺麗ではありませんがうまくいくようです。誰もが不透明フォアグラウンドの後ろにどこかでレンダリングされたUIツリーを置くために、より良い