Серия диаграмм не сохранена в изображении

В моем проекте WPF я использую Control.Datavisualization.Charting.Chart управление для построения ряда линий.

Я также хотел бы хранить Chart в изображение, поэтому я делаю следующее (после создания серии):

        this.chart.Series.Clear();
        this.chart.Series.Add(lineCurve);
        this.chart.Series.Add(lineBilinear);


        //store the image file in folder
        DrawUtils.saveChartToPng(this.chart, path);

где saveChartToPng() как следует:

public static void saveChartToPng(Chart chart, String filename)
        {
            Rect bounds = VisualTreeHelper.GetDescendantBounds(chart);
            double dpi = 96d;


            RenderTargetBitmap rtb = new RenderTargetBitmap((int)bounds.Width, (int)bounds.Height, dpi, dpi, System.Windows.Media.PixelFormats.Default);


            DrawingVisual dv = new DrawingVisual();
            using (DrawingContext dc = dv.RenderOpen())
            {
                VisualBrush vb = new VisualBrush(chart);
                dc.DrawRectangle(vb, null, new Rect(new Point(), bounds.Size));
            }

            rtb.Render(dv);

            //endcode as PNG
            BitmapEncoder pngEncoder = new PngBitmapEncoder();
            pngEncoder.Frames.Add(BitmapFrame.Create(rtb));

            //save to memory stream
            System.IO.MemoryStream ms = new System.IO.MemoryStream();

            pngEncoder.Save(ms);
            ms.Close();
            System.IO.File.WriteAllBytes(filename, ms.ToArray());

            return;
        }

После saveChartToPng() диаграмма сохраняется в изображение, но серии не присутствуют на изображении. Серии видны на графике внутри окна.

Что я пропускаю, прежде чем позвонить saveChartToPng()?

0 ответов

Другие вопросы по тегам