グリッド (彼のすべての子供たち) を PNG にエクスポートしたいと思います。問題は、これらの子の一部がグリッドの外にあることです。これが私のコードです:
VisualBrush sourceBrush = new VisualBrush(MyGrid);
DrawingVisual drawingVisual = new DrawingVisual();
using (DrawingContext drawingContext = drawingVisual.RenderOpen())
{
drawingContext.DrawRectangle(sourceBrush, null, new Rect(new Point(0, 0), new Point(Math.Floor(exportWidth), Math.Floor(exportHeight))));
drawingContext.Close();
}
RenderTargetBitmap renderTarget = new RenderTargetBitmap((int)Math.Floor(exportWidth), (int)Math.Floor(exportHeight), 96, 96, PixelFormats.Default);
renderTarget.Render(drawingVisual);
子の少なくとも 1 つがグリッドの外側にある場合、結果のイメージはぼやけます。
exportHeight と exportWidth の値は、グリッドの子の位置を基準にして上流で計算されます。すべての子がグリッド内にある場合、画像は明確です。これは、VisualBrush の元のサイズが変更できないためだと思います。それを修正する方法を知っていますか?
編集: renderTarget.Render(MyGrid); を呼び出しません。グリッドの外側にある子 (上または左の値が負の子) を担当しないためです。