Πώς να συνδέσετε σχήματα με συνδέσμους στο .NET

Πώς να συνδέσετε σχήματα με συνδέσμους στο .NET

Οι συνδέτες στο Aspose.Slides FOSS είναι σχήματα γραμμής που συνδέονται με σημεία σύνδεσης σε άλλα σχήματα. Όταν μετακινείτε ένα συνδεδεμένο σχήμα, το άκρο του συνδέτη μετακινείται μαζί του. Ο πιο κοινός τύπος συνδέτη είναι BentConnector3, ο οποίος διαδρομεί γύρω από εμπόδια με μία μόνο γωνία λυγίσματος.


Προαπαιτούμενα

dotnet add package Aspose.Slides.Foss

Δείκτες Τοποθεσίας Σύνδεσης

Κάθε σχήμα έχει τέσσερις αριθμημένες θέσεις σύνδεσης:

ΔείκτηςΘέση
0Κέντρο επάνω
1Κέντρο αριστερά
2Κέντρο κάτω
3Κέντρο δεξιά

Συνδέστε δύο σχήματα

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);

Τα όρια του κράτηματος (0, 0, 10, 10) που περνιούνται στο AddConnector αγνοούνται μόλις οριστούν τα άκρα σύνδεσης· το PowerPoint ανακατευθύνει τον σύνδεσμο στα συνημμένα σχήματα.


Τύποι Συνδέσεων

// Straight line
ShapeType.StraightConnector1

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

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

// Curved connector
ShapeType.CurvedConnector3

Στυλ της γραμμής σύνδεσης

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);

Διάγραμμα ροής με πολλαπλούς συνδέσμους

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);

Ανάγνωση Ιδιοτήτων Συνδέσμου

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 ?? "?"}");
    }
}

Δείτε επίσης

 Ελληνικά