Com connectar formes amb connectors a .NET

Com connectar formes amb connectors a .NET

Els connectors a Aspose.Slides FOSS són formes de línia que s’adjunten a punts de connexió d’altres formes. Quan mou una forma connectada, l’extrem del connector es mou amb ella. El tipus de connector més comú és BentConnector3, que ruta al voltant d’obstacles amb un doblec d’colze únic.


Requisits previs

dotnet add package Aspose.Slides.Foss

Índexs del lloc de connexió

Cada forma té quatre punts de connexió numerats:

ÍndexPosició
0Centre superior
1Centre esquerre
2Centre inferior
3Centre dret

Connecta dues formes

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var slide = prs.Slides[0];

// Add two rectangles
var box1 = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 200, 200, 100);
var box2 = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 450, 200, 200, 100);

box1.AddTextFrame("Start");
box2.AddTextFrame("End");

// Add a bent connector (initial bounds are overwritten by the connection)
var conn = slide.Shapes.AddConnector(ShapeType.BentConnector3, 0, 0, 10, 10);

// Connect right side of box1 (site 3) to left side of box2 (site 1)
conn.StartShapeConnectedTo = box1;
conn.StartShapeConnectionSiteIndex = 3;
conn.EndShapeConnectedTo = box2;
conn.EndShapeConnectionSiteIndex = 1;

prs.Save("connected.pptx", SaveFormat.Pptx);

Els límits del marcador de posició (0, 0, 10, 10) passats a AddConnector s’ignoren un cop s’estableixen els punts finals de connexió; PowerPoint redirigeix el connector cap a les formes adjuntes.


Tipus de connectors

// Straight line
ShapeType.StraightConnector1

// Single elbow (L-shape)
ShapeType.BentConnector2

// Double elbow (Z-shape): most common
ShapeType.BentConnector3

// Curved connector
ShapeType.CurvedConnector3

Estilitzar la línia de connector

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Drawing;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var slide = prs.Slides[0];

var box1 = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 150, 180, 80);
var box2 = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 500, 300, 180, 80);

var conn = slide.Shapes.AddConnector(ShapeType.BentConnector3, 0, 0, 10, 10);
conn.StartShapeConnectedTo = box1;
conn.StartShapeConnectionSiteIndex = 2;   // bottom of box1
conn.EndShapeConnectedTo = box2;
conn.EndShapeConnectionSiteIndex = 0;     // top of box2

// Style: dashed blue line, 2 pt width
var lf = conn.LineFormat;
lf.Width = 2.0;
lf.FillFormat.SolidFillColor.Color = Color.Blue;
lf.DashStyle = LineDashStyle.Dash;

prs.Save("styled-connector.pptx", SaveFormat.Pptx);

Diagrama de flux amb múltiples connectors

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var slide = prs.Slides[0];

// Three-step flowchart
var step1 = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 350, 50, 200, 70);
var step2 = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 350, 220, 200, 70);
var step3 = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 350, 390, 200, 70);

step1.AddTextFrame("Step 1");
step2.AddTextFrame("Step 2");
step3.AddTextFrame("Step 3");

void ConnectVertical(IShapeCollection shapes, IShape topShape, IShape bottomShape)
{
    var c = shapes.AddConnector(ShapeType.BentConnector3, 0, 0, 10, 10);
    c.StartShapeConnectedTo = topShape;
    c.StartShapeConnectionSiteIndex = 2;   // bottom
    c.EndShapeConnectedTo = bottomShape;
    c.EndShapeConnectionSiteIndex = 0;     // top
}

ConnectVertical(slide.Shapes, step1, step2);
ConnectVertical(slide.Shapes, step2, step3);

prs.Save("flowchart.pptx", SaveFormat.Pptx);

Llegeix les propietats del connector

using Aspose.Slides.Foss;

using var prs = new Presentation("connected.pptx");
foreach (var shape in prs.Slides[0].Shapes)
{
    if (shape is Connector connector)
    {
        var start = connector.StartShapeConnectedTo;
        var end = connector.EndShapeConnectedTo;
        Console.WriteLine($"Connector: {start?.Name ?? "?"} -> {end?.Name ?? "?"}");
    }
}

Vegeu també

 Català