0

グリッド (彼のすべての子供たち) を 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); を呼び出しません。グリッドの外側にある子 (上または左の値が負の子) を担当しないためです。

4

1 に答える 1