C# 导出带有自定义图像的代码创建的Steema图表 是否有某种方法可以在不通过“屏幕绘制”的情况下导出带有自定义图形的Steema图表?

C# 导出带有自定义图像的代码创建的Steema图表 是否有某种方法可以在不通过“屏幕绘制”的情况下导出带有自定义图形的Steema图表?,c#,teechart,C#,Teechart,我正在尝试导出一个SteemaTChart,它没有在屏幕上绘制一些自定义图形。我找到了Graphics3D对象,但当我尝试使用它时,它抛出了一个NullReferenceException: 在Steema.TeeChart.WPF.Drawing.Graphics3DWPF.Draw(Rect-desect、Rect-srrect、位图源图像、布尔透明) 在Steema.TeeChart.WPF.Drawing.Graphics3D.Draw(Rect r,位图源图像,布尔透明) 在WpfSt

我正在尝试导出一个Steema
TChart
,它没有在屏幕上绘制一些自定义图形。我找到了
Graphics3D
对象,但当我尝试使用它时,它抛出了一个
NullReferenceException

在Steema.TeeChart.WPF.Drawing.Graphics3DWPF.Draw(Rect-desect、Rect-srrect、位图源图像、布尔透明)
在Steema.TeeChart.WPF.Drawing.Graphics3D.Draw(Rect r,位图源图像,布尔透明)
在WpfSteemaApplication.MainWindowViewModel.SaveImage()处

我找到的关于自定义绘图的唯一其他信息是在事件
BeginDraw
AfterDraw
中,在我导出图像之前似乎没有调用这些信息。
然而,其他一切似乎都渲染得很好,这只是我需要的自定义图像

private void SaveImage()
{
    BitmapSource bitmap = new BitmapImage(new Uri("pack://application:,,,/button.png"));
    TChart chart = new TChart();
    JPEGFormat jpegFormat = chart.Export.Image.JPEG;

    // This throws an exception when uncommented.
    //chart.Graphics3D.Draw(new Rect(0, 0, 100, 100), bitmap, true);
    Line line = new Line();
    line.FillSampleValues();
    chart.Series.Add(line);
    jpegFormat.Width = 1024;
    jpegFormat.Height = 340;
    jpegFormat.Quality = 100;
    jpegFormat.Save("C:\\Temp\\steemachart.jpg");
}

我在图表上找到了
DoInvalidate()
方法,该方法依次调用
AfterDraw
。在导出图像后,图像和图表都会在图像中呈现

private void SaveImage()
{
    TChart chart = new TChart();
    JPEGFormat jpegFormat = chart.Export.Image.JPEG;
    Line line = new Line();
    line.FillSampleValues();
    chart.Series.Add(line);
    jpegFormat.Width = 1024;
    jpegFormat.Height = 340;
    jpegFormat.Quality = 100;
    chart.AfterDraw += OnAfterDraw;
    chart.DoInvalidate();
    jpegFormat.Save("C:\\Temp\\steemachart.jpg");
}

private void OnAfterDraw(object sender, Graphics3D g)
{
    BitmapSource bitmap = new BitmapImage(new Uri("pack://application:,,,/button.png"));
    g.Draw(new Rect(0, 0, bitmap.Width, bitmap.Height), bitmap, true);
}