Работа със свързващи линии — Aspose.Slides FOSS за .NET

Конекторите са форми, които визуално свързват две други форми с линия. Aspose.Slides FOSS за .NET поддържа изкривени, прави и извити конектори. Точките за свързване върху форма се идентифицират чрез цяло число индекси на места за свързване.


Индекси на връзъчните места

Всяка форма предоставя четири стандартни връзъчни места:

ИндексСтрана
0Горе
1Ляво
2Долу
3Дясно

Добавяне на огънат конектор между две форми

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

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

// Create two shapes to connect
var box1 = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 150, 150, 60);
box1.AddTextFrame("Start");

var box2 = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 400, 150, 150, 60);
box2.AddTextFrame("End");

// Add a bent connector (position/size are ignored once connected)
var conn = slide.Shapes.AddConnector(ShapeType.BentConnector3, 0, 0, 10, 10);

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

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

Типове форми на конектори

ShapeTypeОписание
ShapeType.BentConnector3Два 90-градусови завоя (най-често срещани за диаграми в стил потокова схема)
ShapeType.BentConnector2Един 90-градусов завой
ShapeType.BentConnector4Три 90-градусови завоя
ShapeType.StraightConnector1Директна права линия
ShapeType.CurvedConnector2Една гладка крива
ShapeType.CurvedConnector3Крива с двойно завой

Връзка отгоре надолу

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

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

var top = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 250, 80, 200, 60);
top.AddTextFrame("Decision");

var bottom = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 250, 300, 200, 60);
bottom.AddTextFrame("Action");

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

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

Диаграма на потока с множество конектори

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

static IAutoShape AddBox(ISlide slide, string text, float x, float y,
    float w = 160, float h = 50)
{
    var s = slide.Shapes.AddAutoShape(ShapeType.Rectangle, x, y, w, h);
    s.AddTextFrame(text);
    return s;
}

static IConnector Connect(ISlide slide, IShape s1, int site1, IShape s2, int site2)
{
    var conn = slide.Shapes.AddConnector(ShapeType.BentConnector3, 0, 0, 10, 10);
    conn.StartShapeConnectedTo = s1;
    conn.StartShapeConnectionSiteIndex = site1;
    conn.EndShapeConnectedTo = s2;
    conn.EndShapeConnectionSiteIndex = site2;
    return conn;
}

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

var start = AddBox(slide, "Start", 260, 60);
var process = AddBox(slide, "Process Data", 260, 180);
var end = AddBox(slide, "End", 260, 300);

Connect(slide, start, 2, process, 0);    // start -> process (bottom to top)
Connect(slide, process, 2, end, 0);      // process -> end (bottom to top)

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

Форматиране на свързваща линия

Конекторите поддържат същото LineFormat свойства като другите форми:

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, 150, 60);
var box2 = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 400, 150, 150, 60);

var conn = slide.Shapes.AddConnector(ShapeType.BentConnector3, 0, 0, 10, 10);
conn.StartShapeConnectedTo = box1;
conn.StartShapeConnectionSiteIndex = 3;
conn.EndShapeConnectedTo = box2;
conn.EndShapeConnectionSiteIndex = 1;

// Style the connector line
conn.LineFormat.Width = 2.5;
conn.LineFormat.DashStyle = LineDashStyle.Dash;
conn.LineFormat.FillFormat.SolidFillColor.Color = Color.DarkBlue;

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

Вижте също

 Български