В приложении C # / WPF у меня есть объект DataChart, который мне нужно сохранить в изображение. В настоящее время объект добавляется в фиксированный документ и корректно отображается в этом фиксированном документе с использованием следующего кода:
VisualBrush chartBrush = new VisualBrush(chart);
Rectangle chartRect = new Rectangle();
chartRect.Height = chartClone.Height;
chartRect.Width = chartClone.Width;
chartRect.Fill = chartBrush;
AddBlockUIElement(chartRect, textAlignment);
Однако вместо того, чтобы добавить его в качестве блока в фиксированный документ, мне теперь нужно просто сохранить изображение на диск. Я пытался сделать следующее:
RenderTargetBitmap bmp = new RenderTargetBitmap((int)chart.Width, (int)chart.Height, 96, 96, PixelFormats.Default);
bmp.Render(chart);
PngBitmapEncoder image = new PngBitmapEncoder();
image.Frames.Add(BitmapFrame.Create(bmp));
using (Stream fs = File.Create("TestImage.png"))
{
image.Save(fs);
fs.Close();
}
Однако это просто дает мне сплошное черное изображение размером с мою диаграмму, и я не могу понять, почему.
Итак, мой вопрос: кто-нибудь знает, как лучше превратить объект DataChart в изображение PNG или BMP, которое я могу сохранить? Я попытался выполнить поиск при переходе от VisualBrush или Rectangle к изображению, но не нашел ничего, кроме вышеприведенного, которое, кажется, делает то, что мне нужно.
Большое спасибо!