TransformPoints : Graphics « 2D Graphics « C# / C Sharp



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.DrawString(gu + ": " + sizef, Font, brush, 0, y);
        y += (int)Math.Ceiling(Font.GetHeight(grfx));


Related examples in the same category

1.Graphics: TranslateClip
2.Graphics: SetClip
3.Scribble with MouseScribble with Mouse
4.FillPolygon: Alternate and Winding Fill Modes
5.One-Inch Ellipse
6.Graphics: FillRectangles
7.Graphics: FillRectangle
8.Graphics: FillEllipse
9.Wide Polyline: DrawLines
10.Line and Arc Combo
11.Graphics: FillClosedCurve
12.Bezier Art: DrawBeziers
13.Graphics: MeasureString
14.Clear a Graphics
15.Graphics: DrawRectangles
16.Graphics: DrawRectangle
17.Draw Ellipse
18.Graphics: DrawArc
19.Graphics: DrawPie
20.Draw a Rectangle
21.Draw an Image
22.FillEllipse: Red Traffic Light
23.Graphics: Draw an Icon
24.Graphics: DrawString
25.Use different Font object to draw a line of text
26.Graphics: ScaleTransform
27.Graphics: Transform
28.Graphics: TranslateTransform
29.Graphics: Pen Alignment
30.Graphics: PageScale
31.Graphics: PageUnit
32.DpiY and DpiX
34.Paint along points in a list pointsPaint along points in a list points
35.Picture Cube: DrawImage
36.Clipping: ResetClip
37.Rotate the text 45 degrees clockwise then Translate the text 150 pixels horizontally
38.Transform and RotateTransform in a loop
39.Apply the scaling transformation(scale subsequent operations by 2x horizontally and 3x vertically)
40.Translate the text 150 pixels horizontally and 75 vertically
41.Reset the transformation Translate by 30 pixels in vertical direction
42.Rotate the text through 45 degrees
43.Fill the area 'bounded' by the path
44.DrawImage with destination points
45.DrawImage with size
47.DrawPie with offset
48.Fill a Rectangle with TextureBrush
49.Fill a Rectangle with LinearGradientBrush