protected override void DrawCore(Painter painter, ChartData data) { base.DrawCore(painter, data); if (data != null) { int start; PaintArguments paintArguments = new PaintArguments(painter, data, ChartMargin); try { foreach (DataSeries dataSeries in data.Series) { float tmpY = painter.Height - paintArguments.AxisYLocation; start = paintArguments.AxisXLocation + (data.Series.IndexOf(dataSeries)) * CalculateInterval(painter, data); painter.DrawString(dataSeries.Name, Style, new ChartPoint(start, tmpY + 2)); foreach (DataPoint dataPoint in dataSeries.Point) { float y = dataPoint.Value / paintArguments.Ratio; if (dataPoint.IsValid == true) { if (CalculateInterval(painter, data) > 10) { painter.DrawString(dataPoint.Value.ToString(), Style, new ChartPoint(start - 7, tmpY - y - 15)); } } } } ChartPoint[][] point = ChangeDataToPoints(data, painter); DrawCurveCore(painter, data, point); } catch { //To do } } }
protected override int CalculateInterval(Painter painter, ChartData data) { PaintArguments paintArguments = new PaintArguments(painter, null, ChartMargin); return(paintArguments.AxisWidth / ((data.CalculateColumnCount() + 1) * data.CalculateRowCount())); }