我想将一个网格(他的所有孩子都出口)导出到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);因为它不会对在网格之外的儿童(顶部或左侧值为负的儿童)负责。
答案 0 :(得分:0)
你试过吗?
MyGrid.ClipToBounds = true;