title: WinForms Control.Scale Method
body: <p>The code below shows a small WinForms app which includes a simple Control that draws a circle. I'm trying to understand the behavior of the <code>Control.Scale</code> method. </p>
  
  <p>If I call the Scale method on the Control from Main, as shown in the code, it scales properly. But if I instead call Scale from Circle's constructor, no scaling occurs. </p>
  
  <p>My puzzlement here no doubt indicates a gross misunderstanding on my part regarding what Scale is supposed to do. Can anyone enlighten me?</p>
  
  <pre><code>using System;
  using System.Windows.Forms;
  using System.Drawing;
  
  class Program
  {
      [STAThread]
      public static void Main()
      {
          var circle = new Circle(Color.Orange)
          {
              Size = new Size(23, 23),
              Location = new Point(50, 50)
          };
          circle.Scale(new SizeF(3.0f, 3.0f));      //  &lt;-- scaling here works
  
          var form = new Form();
          form.Controls.Add(circle);
  
          Application.Run(form);
      }
  }
  
  class Circle : Control
  {
      public Circle(Color color)
      {
          ForeColor = color;
          // Scale(new SizeF(3.0f, 3.0f));     //  &lt;-- scaling here DOESN'T work
      }
  
      protected override void OnPaint(PaintEventArgs e)
      {
          e.Graphics.FillEllipse(new SolidBrush(ForeColor), ClientRectangle);
      }
  }
  </code></pre>