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ços | Posição: |
|---|---|
0 | Centro superior |
1 | Centro esquerdo |
2 | Centro inferior |
3 | Centro 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.CurvedConnector3Estilo 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 ?? "?"}");
}
}