dthor
dthor

Reputation: 1867

How can I prevent WinForms Chart from resizing as data is added?

How can I prevent a WinForms Chart object from autosizing on the X axis when a new tickmark comes up?

A picture, or in this case a gif, is worth a thousand words:

enter image description here

See the little jump when a new gridline, tick, and label show up? Super annoying.

I'm pretty sure that the setting is somewhere in chart1.ChartAreas[0].AxisX but I haven't been able to find anything that prevents this from happening.

Where should I look?

Upvotes: 1

Views: 375

Answers (1)

TaW
TaW

Reputation: 54433

When adding points at some point a new axis label must be added at each new interval. Since it is drawn centered at the value the chart needs to make room for it to both sides. The extra room to the right side then takes a while to be filled with data. This results in the jumps..

In my test the most straightforward solution was to simply omit the last axis label:

Axis ax = chart1.ChartAreas[0].AxisX;
ax.LabelStyle.IsEndLabelVisible = false;

enter image description here

Of course turning it back on when no more points are being added is a good idea.

Another, much more involved solution might be to disable the axis labels altogether and draw them in a xxxPaint event..

Upvotes: 2

Related Questions