Pen.ScaleTransform Method (Single, Single, MatrixOrder)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Scales the local geometric transformation by the specified factors in the specified order.

Namespace:   System.Drawing
Assembly:  System.Drawing (in System.Drawing.dll)

public void ScaleTransform(
	float sx,
	float sy,
	MatrixOrder order


Type: System.Single

The factor by which to scale the transformation in the x-axis direction.

Type: System.Single

The factor by which to scale the transformation in the y-axis direction.

Type: System.Drawing.Drawing2D.MatrixOrder

A MatrixOrder that specifies whether to append or prepend the scaling matrix.

The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler. The code performs the following actions:

  • Creates a Pen.

  • Draws a rectangle using the pen.

  • Scales the pen by 2 times in the x-axis direction.

  • Draws a second rectangle to demonstrate the difference.

public void ScaleTransform_Example2(PaintEventArgs e)

    // Create a Pen object.
    Pen scalePen = new Pen(Color.Black, 5);

    // Draw a rectangle with scalePen.
    e.Graphics.DrawRectangle(scalePen, 10, 10, 100, 100);

    // Scale scalePen by 2X in the x-direction.
    scalePen.ScaleTransform(2, 1, MatrixOrder.Prepend);

    // Draw a second rectangle with rotatePen.
    e.Graphics.DrawRectangle(scalePen, 120, 10, 100, 100);

.NET Framework
Available since 1.1
Return to top