保存内容控件中的图像

时间:2015-03-17 05:52:02

标签: wpf contentcontrol

我有一个内容控件,当我试图保存该图像时会得到一个黑色图像。我错过了什么。

RenderTargetBitmap rtb = new RenderTargetBitmap((int)content1.ActualWidth, (int)content1.ActualHeight, 96, 96, PixelFormats.Pbgra32);
            rtb.Render(content1);

            PngBitmapEncoder pnge = new PngBitmapEncoder();
            pnge.Frames.Add(BitmapFrame.Create(rtb));
            Stream stream = File.Create(DriveName + ":/OpenCV/Images/UI/LeftEdge.png");
            pnge.Save(stream);
            stream.Close();

2 个答案:

答案 0 :(得分:1)

当您尝试渲染ContentControl时,看起来还没有布局。

尝试在其上调用UpdateLayout()。

如果没有这个诀窍,请尝试在渲染之前先调用Measure(),然后再调整() -

答案 1 :(得分:1)

你有没有试过这样的事情:

if (control.Type == WdContentControlType.wdContentControlPicture)
{
    if (control.Range.InlineShapes.Count != 0)
    {
        // Clear previous shapes
        foreach (InlineShape shape in control.Range.InlineShapes)
        {
            if (shape.Type == WdInlineShapeType.wdInlineShapePicture)
            {
                shape.Delete();
            }
         }

         // Add new shape
         InlineShape img = control.Range.InlineShapes.AddPicture (valueToSet, false, true);
         img.Width = 90;
         img.Height = 90;
    }
}