Mega Code Archive

 
Categories / C# / GUI Windows Form
 

Subclass PictureBox

using System; using System.Drawing; using System.Windows.Forms;     class PictureBoxPlusDemo: Form {      public static void Main()      {           Application.Run(new PictureBoxPlusDemo());      }      public PictureBoxPlusDemo()      {           Text = "PictureBoxPlus Demo";               PictureBoxPlus picbox = new PictureBoxPlus();           picbox.Parent = this;           picbox.Dock = DockStyle.Fill;           picbox.Image = Image.FromFile("Color.jpg");      } }      class PictureBoxPlus: PictureBox      {           protected override void OnPaint(PaintEventArgs pea)           {                ScaleImageIsotropically(pea.Graphics, Image,ClientRectangle);           }           void ScaleImageIsotropically(Graphics grfx, Image image,                                        Rectangle rect)           {                SizeF sizef =                      new SizeF(image.Width / image.HorizontalResolution,                               image.Height / image.VerticalResolution);                    float fScale = Math.Min(rect.Width  / sizef.Width,                                        rect.Height / sizef.Height);                    sizef.Width  *= fScale;                sizef.Height *= fScale;                           grfx.DrawImage(image,                               rect.X + (rect.Width  - sizef.Width ) / 2,                               rect.Y + (rect.Height - sizef.Height) / 2,                               sizef.Width, sizef.Height);           }      }