protected override void OnPaint(PaintEventArgs e) { e.Graphics.Clear(BackColor); if (TransparentBackground) { PaintHelper.DrawTransparentBackground(e.Graphics, ClientRectangle); } if (Image != null) { var clientSize = ClientSize; var rectImage = new Rectangle(-HorizontalScroll.Value, -VerticalScroll.Value, ImageViewSize.Width, ImageViewSize.Height); rectImage.X += Math.Max(0, (clientSize.Width - rectImage.Width) / 2); rectImage.Y += Math.Max(0, (clientSize.Height - rectImage.Height) / 2); e.Graphics.DrawImage(Image, rectImage, 0, 0, Image.Width, Image.Height, GraphicsUnit.Pixel); } }