Den här artikeln förklarar hur man skapar ett flödesschema i C#. Den täcker steg-för-steg-processen samt en exempelkod för att utveckla en flödesschematillverkare i C#. Dessutom kan du improvisera koden genom att ändra schemat, antalet former, anslutningar och andra funktioner för att skapa en flowchart baserat på dina krav.
Steg för att skapa flödesschema i C#
- Installera Aspose.Diagram API för att skapa ett flödesschema
- Skapa schema för flödesschemat
- Ladda huvudformerna för att infoga former med klassen Diagram
- Ställ in layouten och exportera flödesschemat med metoden Save
Dessa steg utvecklar detaljerna för att skapa flödesschemagenerator i C#. Skapa först och främst ett schema för att specificera roller, beteckningar etc., och använd sedan huvudformerna för att lägga till grundläggande former som rektanglar, kopplingar etc. Lägg slutligen till formerna och ställ in layout innan du sparar utdataflödesschemat enligt dina krav .
Kod för att skapa flödesschema i C#
using System; | |
using System.Collections.Generic; | |
class Program | |
{ | |
static void Main(string[] args) // Create flowchart in C# | |
{ | |
// Set the license | |
new Aspose.Diagram.License().SetLicense("License.lic"); | |
// schema for the diagram to be created | |
Input diagramObject = new Input() | |
{ | |
InputRectangles = new List<InputRectangle>() { | |
new InputRectangle() { | |
Name = "A", | |
Text = "Manager" | |
}, | |
new InputRectangle() { | |
Name = "B", | |
Text = "Team Leader" | |
}, | |
new InputRectangle() { | |
Name = "C", | |
Text = "Team Member" | |
}, | |
new InputRectangle() { | |
Name = "D", | |
Text = "Team Member" | |
}, | |
new InputRectangle() { | |
Name = "E", | |
Text = "Team Member" | |
} | |
}, | |
InputConnectors = new List<InputConnector>() { | |
new InputConnector() { | |
OriginShapeName = "A", | |
DestinationShapeName = "B" | |
}, | |
new InputConnector() { | |
OriginShapeName = "B", | |
DestinationShapeName = "C" | |
}, | |
new InputConnector() { | |
OriginShapeName = "B", | |
DestinationShapeName = "D" | |
}, | |
new InputConnector() { | |
OriginShapeName = "B", | |
DestinationShapeName = "E" | |
} | |
} | |
}; | |
Aspose.Diagram.Diagram diagram = new Aspose.Diagram.Diagram("BasicShapes.vss"); | |
Aspose.Diagram.Page page = diagram.Pages[0]; | |
Dictionary<string, long> shapeNames = new Dictionary<string, long>(); | |
// Add shapes | |
foreach (var rectangle in diagramObject.InputRectangles) | |
{ | |
Aspose.Diagram.Shape shape = new Aspose.Diagram.Shape(); | |
var shapeId = diagram.AddShape(shape, @"Rectangle", 0); | |
shapeNames.Add(rectangle.Name, shapeId); | |
shape = page.Shapes.GetShape(shapeId); | |
shape.Text.Value.Add(new Aspose.Diagram.Txt(rectangle.Text)); | |
} | |
foreach (var connector in diagramObject.InputConnectors) | |
{ | |
var connectorId = diagram.AddShape(new Aspose.Diagram.Shape(), "Dynamic connector", 0); | |
page.ConnectShapesViaConnector(shapeNames[connector.OriginShapeName], | |
Aspose.Diagram.Manipulation.ConnectionPointPlace.Right, | |
shapeNames[connector.DestinationShapeName], | |
Aspose.Diagram.Manipulation.ConnectionPointPlace.Left, | |
connectorId); | |
} | |
Aspose.Diagram.AutoLayout.LayoutOptions layoutOptions = new Aspose.Diagram.AutoLayout.LayoutOptions() | |
{ | |
LayoutStyle = Aspose.Diagram.AutoLayout.LayoutStyle.FlowChart, | |
Direction = Aspose.Diagram.AutoLayout.LayoutDirection.LeftToRight, | |
SpaceShapes = 5, | |
EnlargePage = true | |
}; | |
diagram.Layout(layoutOptions); | |
page.PageSheet.PrintProps.PrintPageOrientation.Value = Aspose.Diagram.PrintPageOrientationValue.Landscape; | |
Aspose.Diagram.Saving.DiagramSaveOptions saveOptions = new Aspose.Diagram.Saving.DiagramSaveOptions() | |
{ | |
SaveFormat = Aspose.Diagram.SaveFileFormat.Vsdx, | |
AutoFitPageToDrawingContent = true | |
}; | |
diagram.Save("flowchart.vsdx", saveOptions); | |
Console.WriteLine("Done"); | |
} | |
} | |
public class Input | |
{ | |
public System.Collections.Generic.List<InputRectangle> InputRectangles { get; set; } | |
public System.Collections.Generic.List<InputConnector> InputConnectors { get; set; } | |
} | |
public class InputRectangle | |
{ | |
public string Name { get; set; } | |
public string Text { get; set; } | |
} | |
public class InputConnector | |
{ | |
public string OriginShapeName { get; set; } | |
public string DestinationShapeName { get; set; } | |
} |
Denna exempelkod kan användas för att rita ett flödesschema i C#. Medan anpassade klasser också definieras för att skapa kopplingsformer och rektangulära former. Därefter används klassen Diagram för att ladda huvudformerna innan layouten ställs in och det genererade flödesschemat exporteras.
Denna handledning har utvecklat informationen för att skapa en flödesschemabyggare i C#. Men om du vill slå ihop Visio-filer, se artikeln om hur man slår ihop Visio-filer i C#.