title: Centered and scrolled PictureBox in WinForms
body: <p>I'm developing a WinForms application and can't figure out how to resolve an issue.
  I need to show an image in a Form. Because the image can be arbitrarily large, I need scrollbars on the picturebox containing the image so the user can see it entirely.
  Googling around I found out the best way to achieve this is to add the PictureBox as a Child Control of a Panel, and making the Panel autosizable and autoscrollable.
  I did that programatically since using the designer I was unable to insert the picturebox as a child control of the panel.
  The problem I'm now facing is that I can't seem to be able to <strong>center and scroll</strong> the picturebox at the same time.
  If I put the anchor of the picturebox to top,left,bottom,right, the scrollbars are not shown and the image displayed is strange, if I put back the anchor to only top-left, the image is not centered.</p>
  
  <p>Is there any way to do both at the same time?
  Here's the code for my Panel and Picturebox:</p>
  
  <pre><code>this.panelCapturedImage = new System.Windows.Forms.Panel();
  this.panelCapturedImage.SuspendLayout();
  this.panelCapturedImage.AutoScroll = true;
  this.panelCapturedImage.AutoSize = true;
  this.panelCapturedImage.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
  this.panelCapturedImage.Controls.Add(this.pictureBoxCapturedImage);
  this.panelCapturedImage.Location = new System.Drawing.Point(0, 49);
  this.panelCapturedImage.Name = "panelCapturedImage";
  this.panelCapturedImage.Size = new System.Drawing.Size(3, 3);
  this.panelCapturedImage.TabIndex = 4;
  
  this.pictureBoxCapturedImage.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
  this.pictureBoxCapturedImage.Location = new System.Drawing.Point(0, 0);
  this.pictureBoxCapturedImage.Name = "pictureBoxCapturedImage";
  this.pictureBoxCapturedImage.Size = new System.Drawing.Size(0, 0);
  this.pictureBoxCapturedImage.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
  this.pictureBoxCapturedImage.TabIndex = 0;
  this.pictureBoxCapturedImage.TabStop = false;
  
  this.panelCapturedImage.Controls.Add(this.pictureBoxCapturedImage);
  </code></pre>
  
  <p>And here's where I set the image:</p>
  
  <pre><code>public Image CapturedImage
  {
      set 
      { 
          pictureBoxCapturedImage.Image = value;
          pictureBoxCapturedImage.Size = value.Size;
      }
  }
  </code></pre>