Graphics: PageScale
using System; using System.Drawing; using System.Windows.Forms; class ArbitraryCoordinates: Form { public static void Main() { Application.Run(new ArbitraryCoordinates()); } public ArbitraryCoordinates() { Text = "Arbitrary Coordinates"; ResizeRedraw = true; } protected override void OnPaint(PaintEventArgs pea) { DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height); } protected void DoPage(Graphics grfx, Color clr, int cx, int cy) { grfx.PageUnit = GraphicsUnit.Pixel; SizeF sizef = grfx.VisibleClipBounds.Size; grfx.PageScale = Math.Min(sizef.Width / grfx.DpiX / 1000, sizef.Height / grfx.DpiY / 1000); grfx.DrawEllipse(new Pen(clr), 0, 0, 990, 990); } }