Skip to main content
All docs
V25.1
  • GroupShapeCollection Interface

    A collection of shapes in a group.

    Namespace: DevExpress.XtraRichEdit.API.Native

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

    NuGet Package: DevExpress.RichEdit.Core

    Declaration

    public interface GroupShapeCollection :
        NestedShapeCollection,
        ISimpleCollection<NestedShape>,
        IEnumerable<NestedShape>,
        IEnumerable,
        ICollection

    The following members return GroupShapeCollection objects:

    Remarks

    Create a Shape Group

    Call the ShapeCollection.InsertGroup method to create a shape group. The Shape.GroupItems property returns the collection of group items. Use the collection’s Add methods to add drawing objects to the group.

    The example below creates a shape group in the document.

    Add a group to ShapeCollection

    Document document = wordProcessor.Document;
    // Set the measurement unit to inches.
    document.Unit = DevExpress.Office.DocumentUnit.Inch;
    // Insert a shape group.
    Shape group = document.Shapes.InsertGroup(document.Range.Start);
    // Specify the group position relative to the left and top edges of the page. 
    group.Offset = new PointF(1.5f, 1f);
    // Access the collection of group items. 
    var groupItems = group.GroupItems;
    // Add a rectangle to the group.
    var shape1 = groupItems.AddShape(ShapeGeometryPreset.Rectangle, new RectangleF(0f, 0f, 2f, 1.5f));
    shape1.Fill.SetSolidFill(Color.FromArgb(0xA4, 0xFF, 0xFF));
    shape1.Line.Color = Color.DarkGray;
    shape1.Line.Thickness = 2;
    // Add a picture to the group.
    var shape2 = groupItems.AddPicture(DocumentImageSource.FromFile("Picture_Arrow.png"), new PointF(2.1f, 0.3f));
    // Add a parallelogram to the group.
    var shape3 = groupItems.AddShape(ShapeGeometryPreset.Parallelogram, new RectangleF(3.8f, 0f, 2f, 1.5f));
    shape3.Fill.SetSolidFill(Color.FromArgb(0xFF, 0xA5, 0xA5));
    shape3.Line.Color = Color.DarkGray;
    shape3.Line.Thickness = 2;
    

    Ungroup Shapes

    Use the GroupShapeCollection.Ungroup method to split a group into individual 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