Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
1015
UltraChart.SaveTo method renders too slowly and locks UI responses
posted

Hello all,

I'm currently working with Infragistics' UltraWinChart (v11.2) Composite Chart.

I'm plotting the following series on the chart, in order to create a "Burndown" chart to show progress on a project and its associated units of work:

X, X2, Y, Y2, Z, Z2

The chart renders fine inside of the application itself, but the user also has the option to generate a report that takes a snapshot of the Burndown chart and saves it into an RTF document. The code I'm currently using to do this is as follows: 

Dim ms As New MemoryStream
tmpChart.SaveTo(ms, System.Drawing.Imaging.ImageFormat.Png)


This method works fine, however... Originally this process wasn't threaded and the chart took so long to render (up to 7 minutes running in Debug mode through Visual Studio), and would also lock up the UI for the application since it was executing on the main UI thread. Locking up the UI for that long is simply not an option. I threaded this operation, created the temporary chart to be rendered through code, and put it on a background thread. Somehow, it still slows the UI response time significantly, though I'm not sure how if it's not even associated with the main UI thread. 

One reason I think that the chart is taking so long to render using the .SaveTo method is due to the number of axes, and the gridlines that are so closely packed together that they form almost a solid background of gray behind the charted data. I've tried turning off the MajorGridLines and MinorGridLines for all of the charted series but the background is still solid as if they're there.

I've also tried trimming the excess rendering fat on the chart that isn't image specific, including the suggested .Tooltips.Display = TooltipDisplay.Never listed in the v11.2 documentation, but the saving of the chart to an image is still very slow.

Can anyone offer advice on how to speed up the rendering of the control that I might be missing?