internal void PrepareForUpdate()
{
if (this.chart.MainSeries == null || this.chart.MainSeries.Count == 0)
return;
MaxValue = double.MinValue;
MinValue = double.MaxValue;
ArrayList primitives;
lock (Primitives.SyncRoot)
primitives = new ArrayList(Primitives);
foreach (IChartDrawable drawable in primitives)
{
if ((DrawItems || drawable is SeriesView) && drawable is IZoomable)
{
var range = (drawable as IZoomable).GetPadRangeY(this);
if (range.IsValid)
{
MaxValue = Math.Max(MaxValue, range.Max);
MinValue = Math.Min(MinValue, range.Min);
}
}
}
if (MinValue != double.MaxValue && MaxValue != double.MinValue)
{
var offset = (MaxValue - MinValue) / 10;
MinValue -= offset;
MaxValue += offset;
AxisGap = Axis.GetAxisGap();
}
else
AxisGap = -1;
}