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); } }