void SetPlotPanel(Graphics g)
{
// Set form1.PlotPanel:
float xOffset = ChartArea.Width / 30f;
float yOffset = ChartArea.Height / 30f;
CGSize labelFontSize = g.MeasureString ("A", LabelFont);
CGSize titleFontSize = g.MeasureString ("A", TitleFont);
if (Title.ToUpper() == "NO TITLE") {
titleFontSize.Width = 8f;
titleFontSize.Height = 8f;
}
float xSpacing = xOffset / 3f;
float ySpacing = yOffset / 3f;
CGSize tickFontSize = g.MeasureString ("A", TickFont);
float tickSpacing = 2f;
CGSize yTickSize = g.MeasureString(YLimMin.ToString(), TickFont);
for (float yTick = YLimMin + YTickOffset; yTick <= YLimMax; yTick += YTick) {
CGSize tempSize = g.MeasureString(yTick.ToString(), TickFont);
if (yTickSize.Width < tempSize.Width)
yTickSize = tempSize;
}
var leftMargin = (float)(xOffset + labelFontSize.Width + xSpacing + yTickSize.Width + tickSpacing);
float rightMargin = xOffset;
var topMargin = (float)(yOffset + titleFontSize.Height + ySpacing);
var bottomMargin = (float)(yOffset + labelFontSize.Height + ySpacing + tickSpacing + tickFontSize.Height);
// Define the plot panel size:
form1.PlotPanel.Left = ChartArea.X + (int)leftMargin;
form1.PlotPanel.Top = ChartArea.Y + (int)topMargin;
form1.PlotPanel.Width = ChartArea.Width - (int)leftMargin - 2 * (int)rightMargin;
form1.PlotPanel.Height = ChartArea.Height - (int)topMargin - (int)bottomMargin;
form1.PlotPanel.BackColor = plotBackColor;
}