Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有灰色边框的C#RenderTargetBitmap_C#_Wpf_Rendertargetbitmap - Fatal编程技术网

带有灰色边框的C#RenderTargetBitmap

带有灰色边框的C#RenderTargetBitmap,c#,wpf,rendertargetbitmap,C#,Wpf,Rendertargetbitmap,将画布内容渲染为位图时,将显示所有内容,但也有灰色边框(即不在当前视图中的部分)。 在外部工具(XnView)中编辑生成的图像并使用“真彩色”选项可以修复该问题。有人知道我如何在代码中解决这个问题吗?谢谢你的帮助 如果您首先绘制到DrawingVisual,然后从DrawingVisual.ContentBounds?drawingContext.DrawRectangle(visualBrush,new Pen(…),new Rect(new Point(),rectBounds.size))

将画布内容渲染为位图时,将显示所有内容,但也有灰色边框(即不在当前视图中的部分)。
在外部工具(XnView)中编辑生成的图像并使用“真彩色”选项可以修复该问题。有人知道我如何在代码中解决这个问题吗?谢谢你的帮助

如果您首先绘制到DrawingVisual,然后从
DrawingVisual.ContentBounds
?drawingContext.DrawRectangle(visualBrush,new Pen(…),new Rect(new Point(),rectBounds.size))中获取位图大小,会有什么不同吗;试着用同样的方式画笔well@Clemens谢谢你的回答,但是不,那没什么区别。出现灰色边框。@eranotzap不起作用,但感谢您的回复。我记得在渲染到位图时遇到问题,解决方法是将渲染的控件包含在另一个容器中,但细节现在有点模糊。。。
public RenderTargetBitmap GetSketchContentForExport()
    {
        Rect rectBounds = VisualTreeHelper.GetDescendantBounds(drawingCanvas);

        RenderTargetBitmap renderTarget = new RenderTargetBitmap((int)rectBounds.Width, (int)rectBounds.Height, 96, 96, PixelFormats.Pbgra32);

        DrawingVisual drawingVisual = new DrawingVisual();

        using (DrawingContext drawingContext = drawingVisual.RenderOpen())
        {
            VisualBrush visualBrush = new VisualBrush(drawingCanvas);
            drawingContext.DrawRectangle(visualBrush, null, new Rect(new Point(), rectBounds.Size));
        }
        renderTarget.Render(drawingVisual);


        return renderTarget;
    }