Point.Offset Method (Double, Double)


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

Offsets a point's X and Y coordinates by the specified amounts.

Namespace:   System.Windows
Assembly:  WindowsBase (in WindowsBase.dll)

public void Offset(
	double offsetX,
	double offsetY


Type: System.Double

The amount to offset the point's

X coordinate.

Type: System.Double

The amount to offset the

point's Y coordinate.

This operation is equivalent to adding a Point to a Vector.

Note that calling the Offset method will only have an effect if you can change the X and Y properties directly. Because Point is a value type, if you reference a Point object by using a property or indexer, you get a copy of the object, not a reference to the object. If you attempt to change X or Y on a property or indexer reference, a compiler error occurs. Similarly, calling Offset on the property or indexer will not change the underlying object.  If you want to change the value of a Point that is referenced as a property or indexer, create a new Point, modify its fields, and then assign the Point back to the property or indexer. 

The following example shows how to offset the X and Y values of a Point structure.

private Point offsetExample()

    Point pointResult = new Point(10, 5);

    // Offset Point X value by 20 and Y value by 30.
    // point1 is now equal to (30,35)
    pointResult.Offset(20, 30);

    return pointResult;


.NET Framework
Available since 3.0
Return to top