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);

如果至少有一个孩子在网格之外,则生成的图像会变得模糊。

exportHeight 和 exportWidth 值在上游计算,相对于网格子项的位置。如果所有孩子都在网格内,则图片清晰。我认为这是因为无法更改 VisualBrush 原始大小。你知道修复它的方法吗?

编辑:我不调用 renderTarget.Render(MyGrid); 因为它不负责网格外的孩子(上或左值为负的孩子)。

4

1 回答 1

0

你有没有尝试过?

MyGrid.ClipToBounds = true;
于 2018-02-28T18:34:51.693 回答