VisualBrush大小和拉伸问题

问题描述 投票:0回答:1

我想将一个网格(和他所有的孩子一起)导出到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);因为它不负责网格之外的孩子(顶部或左侧值为负的儿童)。

wpf size export blur visualbrush
1个回答
0
投票

你有没有尝试过?

MyGrid.ClipToBounds = true;
© www.soinside.com 2019 - 2024. All rights reserved.