Πώς να συνδέσετε σχήματα με συνδέσμους στο .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 ?? "?"}");
}
}