Microsoft Silverlight will reach end of support after October 2021. Learn more.
Represents an x- and y-coordinate pair in two-dimensional space. Can also represent a logical point for certain property usages.
Assembly: System.Windows (in System.Windows.dll)
'Declaration Public Structure Point _ Implements IFormattable
public struct Point : IFormattable
<object property="X,Y"/> -or <object property="X Y"/>
The x-coordinate component of this Point.
The y-coordinate component of this Point.
Either a space or a comma can be used as the delimiter. . See "Point Values in XAML" heading in Remarks below.
Some XAML usages use the Point type to represent a logical point, rather than a point in a pixel coordinate space. In this case, the values of X and Y are expected to be floating-point values between 0 and 1 inclusive. See "Logical Points" heading in Remarks below.
The Point type exposes the following members.
|Point||Initializes a Point structure that contains the specified values.|
|X||Gets or sets the X-coordinate value of this Point structure.|
|Y||Gets or sets the Y-coordinate value of this Point.|
|Equals(Object)||Determines whether the specified object is a Point and whether it contains the same values as this Point. (Overrides ValueType.Equals(Object).)|
|Equals(Point)||Compares two Point structures for equality.|
|Finalize||Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.)|
|GetHashCode||Returns the hash code for this Point. (Overrides ValueType.GetHashCode().)|
|GetType||Gets the Type of the current instance. (Inherited from Object.)|
|MemberwiseClone||Creates a shallow copy of the current Object. (Inherited from Object.)|
|ToString()||Creates a String representation of this Point. (Overrides ValueType.ToString().)|
|ToString(IFormatProvider)||Creates a String representation of this Point.|
|Equality||Compares two Point structures for equality.|
|Inequality||Compares two Point structures for inequality|
Explicit Interface Implementations
|IFormattable.ToString||Infrastructure. For a description of this member, see ToString.|
Some (but not all) usages of the Point type in Silverlight specify location in the Silverlight content area coordinate space. Depending on the context, the location might be either in the overall Silverlight content area frame of reference for coordinates, or might be within the frame of reference for a specific element. X and Y for a Point can be non-integer values in terms of permitted values. See "Logical Points" section below for information on certain Point usages that expect and use non-integer values extensively.
Depending on the specific property where the Point is applied, X and Y can possibly be negative. Typically, this results in a Point definition that specifies a coordinate outside of the Silverlight content area, unless there is additional translation. Many properties, for example EllipseGeometry.RadiusX, will reject a Point with negative X and Y.
Point is the type that is returned from a call to the GetPosition method used in mouse event handlers. Also, a Point is used for some properties such as To and From of a PointAnimation. A Point can also be used as the qualifier for performing a hit test.
The programmatic upper limit for Point values is not PositiveInfinity, it is a lower number (approximately 1,000,000) that is enforced by the Silverlight native code.
Point Values in XAML
Point uses a type converter, such that XAML attributes that take a Point as their value can specify a Point as a formatted string. The type converter generates or references a Point value based on processing the string. The format of that string is an X,Y value pair. The delimiter between X and Y can be either a comma (plus optionally zero or more spaces), or one or more spaces. The common convention for points is to use a comma delimiter.
The comma used as X,Y separator in the type converter behavior when specified as a string can clash with cultural settings where the comma character is the decimal separator if a decimal value is entered as a string. For usages of a Point that are representing points in the absolute coordinate space (usages that are not a logical point), you generally should use integer values for X and Y. When specifying a Point attribute in XAML, use the period (.) for noninteger X or Y values of a Point, even if that is not the convention in either the culture being developed under, or the target culture of the application.
Point structures cannot be declared as resources in a ResourceDictionary.
Some usages of the Point type in Silverlight do not relate to coordinate frames of reference directly. Instead, these are logical points, where the value of X,Y are each expected to be between 0 and 1 inclusive. This is a major scenario for why the X,Y values can be floating-point values rather than restricted to integer values. The logical point values are used when specifying certain values that have an X and Y dimension, and the Point values are then mapped to a presentation or behavior where the actual coordinates for presentation or behavior might be specified by a different property. Examples of the logical point usage are the values of a KeySpline, which can be used to pace an animation, and some values of LinearGradientBrush and RadialGradientBrush while using the default RelativeToBoundingBox mode. A property of Point type that is a logical point mapping might invalidate values less than 0, or greater than 1, but this depends on the specific property.
In the managed API for Silverlight, all properties of a Point are accessible.
Supported in: 5, 4, 3
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.