using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Windows.Forms; class WhatSizeTransform : Form { public static void Main() { Application.Run(new WhatSizeTransform()); } public WhatSizeTransform() { Text = "With TransformPoints"; ResizeRedraw = true; } protected void DoPage(Graphics grfx, Color clr, int cx, int cy) { Brush brush = new SolidBrush(clr); int y = 0; Point[] apt = { new Point(cx, cy) }; grfx.TransformPoints(CoordinateSpace.Device, CoordinateSpace.Page, apt); DoIt(grfx, brush, ref y, apt[0], GraphicsUnit.Pixel); DoIt(grfx, brush, ref y, apt[0], GraphicsUnit.Display); DoIt(grfx, brush, ref y, apt[0], GraphicsUnit.Document); DoIt(grfx, brush, ref y, apt[0], GraphicsUnit.Inch); DoIt(grfx, brush, ref y, apt[0], GraphicsUnit.Millimeter); DoIt(grfx, brush, ref y, apt[0], GraphicsUnit.Point); } void DoIt(Graphics grfx, Brush brush, ref int y,Point pt, GraphicsUnit gu) { GraphicsState gs = grfx.Save(); grfx.PageUnit = gu; grfx.PageScale = 1; PointF[] aptf = { pt }; grfx.TransformPoints(CoordinateSpace.Page, CoordinateSpace.Device, aptf); SizeF sizef = new SizeF(aptf[0]); grfx.Restore(gs); grfx.DrawString(gu + ": " + sizef, Font, brush, 0, y); y += (int)Math.Ceiling(Font.GetHeight(grfx)); } }