Path.Data Property
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Gets or sets a Geometry that specifies the shape to be drawn.
Namespace: System.Windows.Shapes
Assembly: System.Windows (in System.Windows.dll)
Syntax
'Declaration
Public Property Data As Geometry
public Geometry Data { get; set; }
<Path>
<Path.Data>
singleGeometry
</Path.Data>
</Path>
<Path Data="moveAndDrawCommands"/>
XAML Values
singleGeometry
A single object element that derives from Geometry. This can be one of the following:One of the simple geometries EllipseGeometry, LineGeometry, or RectangleGeometry.
A single GeometryGroup, which supports other geometries as child elements. See the XAML Values section for GeometryGroup.
A PathGeometry, which supports child object elements that establish a path geometry object model of figures and segments. See the XAML Values section for PathGeometry.
moveAndDrawCommands
This is a complex syntax that cannot be adequately summarized here. For the full syntax, see Path Markup Syntax.
Property Value
Type: System.Windows.Media.Geometry
A description of the shape to be drawn.
Remarks
Dependency property identifier field: DataProperty
For documentation on the XAML string format to use for moveAndDrawCommands, see Path Markup Syntax.
To draw simple shapes, use the EllipseGeometry, LineGeometry, and RectangleGeometry objects. To draw curves, arcs, or complex shapes, use the PathGeometry object. To create a composite geometry, use a GeometryGroup.
Because a GeometryGroup is itself a Geometry, you can either specify single geometries or multiple geometries to populate the <Path.Data> property element in XAML. In the single geometry child case, there is no GeometryGroup collection, and the value of Data is the single geometry. If you specify multiple geometries, the value of Data is a GeometryGroup whose Children contain each of the geometries defined as child elements in XAML.
Examples
The following example uses a Path to draw an ellipse.
<Canvas>
<Path Fill="Gold" Stroke="Black" StrokeThickness="1">
<Path.Data>
<EllipseGeometry Center="50,50" RadiusX="50" RadiusY="50" />
</Path.Data>
</Path>
</Canvas>
The following illustration shows the rendered Path.
In XAML, you can also use a special abbreviated syntax as the value for the Data property. The following example uses this abbreviated syntax to specify the shape of a Path.
<Canvas>
<Path Stroke="DarkGoldenRod" StrokeThickness="3"
Data="M 100,200 C 100,25 400,350 400,175 H 280"/>
</Canvas>
The following illustration shows the rendered Path.
The Data attribute string begins with the "move to" command, indicated by M, which establishes a start point for the path in the coordinate system of the Canvas. Path data parameters are case-sensitive. The capital M indicates an absolute location for the new current point. A lowercase m would indicate relative coordinates. The first segment is a cubic Bezier curve beginning at (100,200) and ending at (400,175), drawn using the two control points (100,25) and (400,350). This segment is indicated by the C command in the Data attribute string. Again, the capital C indicates an absolute path; a lowercase c would indicate a relative path.
The second segment begins with an absolute horizontal "line to" command H, which specifies a line drawn from the preceding subpath's endpoint (400,175) to a new endpoint (280,175). Because it is a horizontal "line to" command, the value specified is an x-coordinate.
For the complete path syntax, see Path Markup Syntax.
Version Information
Silverlight
Supported in: 5, 4, 3
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.
See Also