Example3_4.DrawingView.SetPlotArea C# (CSharp) Method

SetPlotArea() private method

private SetPlotArea ( Graphics g ) : void
g System.Drawing.Graphics
return void
        private void SetPlotArea(Graphics g)
        {
            // Set PlotArea:
            float xOffset = cs.ChartArea.Width / 30.0f;
            float yOffset = cs.ChartArea.Height / 30.0f;
            SizeF labelFontSize = g.MeasureString("A", cs.LabelFont);
            SizeF titleFontSize = g.MeasureString("A", cs.TitleFont);
            if (cs.Title.ToUpper() == "NO TITLE")
            {
                titleFontSize.Width = 8f;
                titleFontSize.Height = 8f;
            }
            float xSpacing = xOffset / 3.0f;
            float ySpacing = yOffset / 3.0f;
            SizeF tickFontSize = g.MeasureString("A", cs.TickFont);
            float tickSpacing = 2f;
            SizeF yTickSize = g.MeasureString(cs.YLimMin.ToString(), cs.TickFont);
            for (float yTick = cs.YLimMin; yTick <= cs.YLimMax; yTick += cs.YTick)
            {
                SizeF tempSize = g.MeasureString(yTick.ToString(), cs.TickFont);
                if (yTickSize.Width < tempSize.Width)
                {
                    yTickSize = tempSize;
                }
            }
            float leftMargin = xOffset + labelFontSize.Width +
                xSpacing + yTickSize.Width + tickSpacing;
            float rightMargin = 2 * xOffset;
            float topMargin = yOffset + titleFontSize.Height + ySpacing;
            float bottomMargin = yOffset + labelFontSize.Height +
                ySpacing + tickSpacing + tickFontSize.Height;

            // Define the plot area with one Y axis:
            int plotX = cs.ChartArea.X + (int)leftMargin;
            int plotY = cs.ChartArea.Y + (int)topMargin;
            int plotWidth = cs.ChartArea.Width - (int)leftMargin - (int)rightMargin;
            int plotHeight = cs.ChartArea.Height - (int)topMargin - (int)bottomMargin;
            cs.PlotArea = new Rectangle(plotX, plotY, plotWidth, plotHeight);
        }