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