Shape.Stretch Property

[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]

Gets or sets a Stretch enumeration value that describes how the shape fills its allocated space.

Namespace: System.Windows.Shapes
Assembly: System.Windows (in System.Windows.dll)
XMLNS for XAML: Not mapped to an xmlns.


Public Property Stretch As Stretch
public Stretch Stretch { get; set; }
<object Stretch="stretchMemberName"/>

Property Value

Type: System.Windows.Media..::.Stretch
One of the Stretch enumeration values. The default value at run time depends on the type of Shape.


Dependency property identifier field: StretchProperty

Generally, you do not set the Stretch value for a Shape or change it from the shape-specific default. This is because the Stretch is adjusted for each type of Shape in such a way that each Shape type's sizing and positioning properties are interpreted in the most intuitive way.

The concept of a Stretch for a Shape has to do with its natural size and how the Shape is positioned in layout. Ultimately for the layout system, all objects that render to the screen are rectangles with a width and a height. This is reflected in the presence of the properties Width and Height at the UIElement level in the object model. Some types of Shapes (Ellipse, Rectangle) can have natural sizes that are well represented by these Width and Height properties, and as a result these are the only properties you use to provide the size (although the shape that renders within that natural size is still influenced by other properties such as RadiusX). But other types of Shape such as Line or Path have other specific properties that declare the shape, and in this case the appropriate behavior is to have Width and Height be deterministic properties, calculated based on values you provide for the specific sizing properties, such as the X1, Y1, X2, Y2 of a Line. However, even for a shape like Line, Width and Height are still settable. The Stretch for a Shape influences what should happen if Width and Height are deliberately set.

For Ellipse or Rectangle, the default Stretch behavior is Fill, because their entire sizing logic is based on the Width and Height. Setting Stretch to None for an Ellipse or Rectangle effectively makes it nonrendering.

For the other shapes, the default Stretch is None. Setting Stretch to other values effectively introduces a transform, which could probably be controlled more efficiently with a true transform if that was a desired effect.

Version Information

Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0


Windows Phone

See Also


Shape Class

System.Windows.Shapes Namespace