Skip to main content
.NET Framework 4.5.2+

ShapeCollection.Flatten() Method

Converts a shape collection into a flattened collection that contains all drawing objects in the document, including items of shape groups and canvases.

Namespace: DevExpress.XtraRichEdit.API.Native

Assembly: DevExpress.RichEdit.v22.1.Core.dll

Declaration

IEnumerable<DrawingObject> Flatten()

Returns

Type Description
IEnumerable<DrawingObject>

A flattened collection of drawing objects in the document.

Remarks

The ShapeCollection stores each shape group or drawing canvas as a single object and does not include their items. You need to use the following properties to obtain their elements:

The Flatten method recursively iterates through the shape collection (its groups and canvases) and collects all drawing objects stored in the document. You can filter the collection by Type to retrieve specific shapes.

The example below shows how to split all shape groups in the document (including nested groups):

using System.Linq;
// ...

Document document = wordProcessor.Document;
List<DrawingObject> groups = document.Shapes.Flatten()
    .Where(x => x.Type == ShapeType.Group)
    .ToList();
for (int i = groups.Count - 1; i >= 0; i--)
{
    groups[i].GroupItems.Ungroup();
}
See Also