public int Add(ChartItem value) { return(List.Add(value)); }
public void Remove(ChartItem value) { List.Remove(value); }
public int IndexOf(ChartItem value) { return(List.IndexOf(value)); }
public bool Contains(ChartItem value) { return(List.Contains(value)); }
//********************************************************************* // // This method returns a bitmap to the calling function. This is the method // that actually draws the pie chart and the legend with it. // //********************************************************************* public override Bitmap Draw() { int perimeter = _perimeter; Rectangle pieRect = new Rectangle(0, 0, perimeter, perimeter - 1); Bitmap bmp = new Bitmap(perimeter + _legendWidth, perimeter); Graphics grp = null; StringFormat sf = null; try { grp = Graphics.FromImage(bmp); sf = new StringFormat(); //Paint Back ground grp.FillRectangle(new SolidBrush(_backgroundColor), 0, 0, perimeter + _legendWidth, perimeter); //Align text to the right sf.Alignment = StringAlignment.Far; //Draw all wedges and legends for (int i = 0; i < _chartItems.Count; i++) { ChartItem item = (ChartItem)_chartItems[i]; SolidBrush brs = null; try { brs = new SolidBrush(item.ItemColor); grp.FillPie(brs, pieRect, item.StartPos, item.SweepSize); grp.FillRectangle(brs, perimeter + _bufferSpace, i * _legendFontHeight + 15, 10, 10); grp.DrawString(item.Label, new Font(_legendFontStyle, _legendFontSize), new SolidBrush(Color.Black), perimeter + _bufferSpace + 20, i * _legendFontHeight + 13); grp.DrawString(item.Value.ToString(), new Font(_legendFontStyle, _legendFontSize), new SolidBrush(Color.Black), perimeter + _bufferSpace + 200, i * _legendFontHeight + 13, sf); } finally { if (brs != null) { brs.Dispose(); } } } //draws the border around Pie grp.DrawEllipse(new Pen(_borderColor, 2), pieRect); //draw border around legend grp.DrawRectangle(new Pen(_borderColor, 1), perimeter + _bufferSpace - 10, 10, 220, _chartItems.Count * _legendFontHeight + 25); //Draw Total under legend grp.DrawString("Total", new Font(_legendFontStyle, _legendFontSize, FontStyle.Bold), new SolidBrush(Color.Black), perimeter + _bufferSpace + 30, (_chartItems.Count + 1) * _legendFontHeight, sf); grp.DrawString(_total.ToString(), new Font(_legendFontStyle, _legendFontSize, FontStyle.Bold), new SolidBrush(Color.Black), perimeter + _bufferSpace + 200, (_chartItems.Count + 1) * _legendFontHeight, sf); grp.SmoothingMode = SmoothingMode.AntiAlias; } finally { if (sf != null) { sf.Dispose(); } if (grp != null) { grp.Dispose(); } } return(bmp); }