public virtual void ZoomToFit()
{
if (!ViewSize.IsEmpty)
{
Rectangle innerRectangle;
double zoom;
double aspectRatio;
innerRectangle = GetInsideViewPort(true);
if (ViewSize.Width > ViewSize.Height)
{
aspectRatio = (double)innerRectangle.Width / ViewSize.Width;
zoom = aspectRatio * 100.0;
if (innerRectangle.Height < ((ViewSize.Height * zoom) / 100.0))
{
aspectRatio = (double)innerRectangle.Height / ViewSize.Height;
zoom = aspectRatio * 100.0;
}
}
else
{
aspectRatio = (double)innerRectangle.Height / ViewSize.Height;
zoom = aspectRatio * 100.0;
if (innerRectangle.Width < ((ViewSize.Width * zoom) / 100.0))
{
aspectRatio = (double)innerRectangle.Width / ViewSize.Width;
zoom = aspectRatio * 100.0;
}
}
Zoom = (int)Math.Round(Math.Floor(zoom));
}
}