Como conectar formas com conectores em .NET

Como conectar formas com conectores em .NET

Este guia mostra como conectar formas com conectores em slides do PowerPoint usando Aspose.Slides FOSS para .NET. Call slide.Shapes.AddConnector() para criar um conector, em seguida, definir conn.StartShapeConnectedTo e a) conn.EndShapeConnectedTo O tipo de conector mais comum é o BentConnector3, que percorre os obstáculos com uma única curva de cotovelo.


Precondições

Adicione a seguinte referência de pacote ao seu projeto executando o comando dotnet CLI install:

aspose-slides-foss/slides is not yet published — build from source until it ships. See the project README for build instructions.

Índices de sites de conexão

Cada forma tem quatro locais de ligação numerados:

Índice de preçosPosição:
0Centro superior
1Centro esquerdo
2Centro inferior
3Centro direito.

Conectar duas formas

Criar as duas formas, adicionar um conector com slide.Shapes.AddConnector(), então definido . StartShapeConnectedTo e a) EndShapeConnectedTo para as ligar nos locais de ligação desejados:

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

Limitação do marcador de lugar (0, 0, 10, 10) Passado para: AddConnector são ignorados uma vez que os pontos finais de conexão estão definidos; PowerPoint reencaminha o conector para as formas anexadas.


Tipos de conectores

Utilização: ShapeType Opções comuns incluem linhas retas, conectores de cotovelo único e duplo:

// Straight line
ShapeType.StraightConnector1

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

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

// Curved connector
ShapeType.CurvedConnector3

Estilo da linha de conector

Configurar a linha do conector cor, largura e estilo de guião via conn.LineFormat Após a criação do conector:

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 fluxo com múltiplos conectores

Construir um diagrama de fluxo multi-passo, criando várias formas e adicionando uma BentConnector3 Conector entre cada par consecutivo:

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

// Connect step1 -> step2
var conn1 = slide.Shapes.AddConnector(ShapeType.BentConnector3, 0, 0, 10, 10);
conn1.StartShapeConnectedTo = step1;
conn1.StartShapeConnectionSiteIndex = 2;   // bottom
conn1.EndShapeConnectedTo = step2;
conn1.EndShapeConnectionSiteIndex = 0;     // top

// Connect step2 -> step3
var conn2 = slide.Shapes.AddConnector(ShapeType.BentConnector3, 0, 0, 10, 10);
conn2.StartShapeConnectedTo = step2;
conn2.StartShapeConnectionSiteIndex = 2;
conn2.EndShapeConnectedTo = step3;
conn2.EndShapeConnectionSiteIndex = 0;

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

Leia Propriedades do Conector

Carregar uma apresentação existente e inspecionar cada conector de StartShapeConnectedTo e a) EndShapeConnectedTo por fundição de formas para 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 ?? "?"}");
    }
}

Ver também:

 Português