public void AddLegend(Graphics g, DataCollection dc, ChartStyle cs)
{
if (dc.DataSeriesList.Count < 1)
{
return;
}
if (!IsLegendVisible)
{
return;
}
int numberOfDataSeries = dc.DataSeriesList.Count;
string[] legendLabels = new string[dc.DataSeriesList.Count];
int n = 0;
foreach (DataSeries ds in dc.DataSeriesList)
{
legendLabels [n] = ds.SeriesName;
n++;
}
//float offSet = 10;
float xc = 0f;
float yc = 0f;
SizeF size = g.MeasureString(legendLabels [0], LegendFont);
float legendWidth = size.Width;
for (int i = 0; i < legendLabels.Length; i++)
{
size = g.MeasureString(legendLabels [i], LegendFont);
float tempWidth = size.Width;
if (legendWidth < tempWidth)
{
legendWidth = tempWidth;
}
}
legendWidth = legendWidth + 50.0f;
float hWidth = legendWidth / 2;
float legendHeight = 18.0f * numberOfDataSeries;
float hHeight = legendHeight / 2;
Rectangle rect = cs.SetPolarArea();
xc = rect.X + rect.Width + cs.Offset + 15 + hWidth / 2;
yc = rect.Y + rect.Height / 2;
DrawLegend(g, xc, yc, hWidth, hHeight, dc, cs);
}