CanvasShapeCollection Interface
A collection of shapes in a drawing canvas.
Namespace: DevExpress.XtraRichEdit.API.Native
Assembly: DevExpress.RichEdit.v24.2.Core.dll
NuGet Package: DevExpress.RichEdit.Core
Declaration
public interface CanvasShapeCollection :
NestedShapeCollection,
ISimpleCollection<NestedShape>,
IEnumerable<NestedShape>,
IEnumerable,
ICollection
Related API Members
The following members return CanvasShapeCollection objects:
Remarks
Create a Drawing Canvas
Call the ShapeCollection.InsertCanvas method to add a drawing canvas to a document. The Shape.CanvasItems property returns the collection of canvas elements. Use the collection’s Add methods to add shapes, pictures, and groups to the canvas.
Note
Word Processing Document API and Rich Text Editors can change the size and location of drawing objects to fit them in the canvas.
The example below adds a drawing canvas to the document.
Document document = wordProcessor.Document;
// Set the measurement unit to inches.
document.Unit = DevExpress.Office.DocumentUnit.Inch;
// Insert a drawing canvas.
Shape canvas = document.Shapes.InsertCanvas(document.Range.Start, new RectangleF(1.5f, 1f, 6f, 1.5f));
// Access the collection of canvas items.
var canvasItems = canvas.CanvasItems;
// Add a rectangle to the canvas.
var shape1 = canvasItems.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 canvas.
var shape2 = canvasItems.AddPicture(DocumentImageSource.FromFile("Picture_Arrow.png"), new PointF(2.1f, 0.3f));
// Add a parallelogram to the canvas.
var shape3 = canvasItems.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;
Remove Shapes from a Drawing Canvas
Use the following methods to remove shapes from a drawing canvas:
CanvasShapeCollection.Remove - removes the specified shape from the canvas;
CanvasShapeCollection.RemoveAt - removes a shape with the specified index from the canvas;
CanvasShapeCollection.Clear - removes all drawing objects from the canvas.
The following example creates a drawing canvas with three shapes and then removes the picture from the canvas:
Document document = wordProcessor.Document;
// Set the measurement unit to inches.
document.Unit = DevExpress.Office.DocumentUnit.Inch;
// Insert a drawing canvas.
Shape canvas = document.Shapes.InsertCanvas(document.Range.Start);
// Specify the canvas height.
canvas.Height = 1.5f;
// Access the collection of canvas items.
var canvasItems = canvas.CanvasItems;
// Add a rectangle to the canvas.
var shape1 = canvasItems.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 canvas.
var shape2 = canvasItems.AddPicture(DocumentImageSource.FromFile("Picture_Arrow.png"), new PointF(2.1f, 0.3f));
// Add a parallelogram to the canvas.
var shape3 = canvasItems.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;
// Remove the picture from the canvas.
canvasItems.Remove(shape2);
Call the ShapeCollection.Remove or ShapeCollection.RemoveAt method to remove the canvas from the document.