В этой статье объясняется, как создать блок-схему на C#. В нем описан пошаговый процесс, а также пример кода для разработки создателя блок-схем на C#. Более того, вы можете импровизировать код, изменяя схему, количество фигур, соединений и другие функции, чтобы создать flowchart в соответствии с вашими требованиями.
Действия по созданию блок-схемы на C#
- Установите API Aspose.Diagram, чтобы создать блок-схему.
- Создайте схему для блок-схемы
- Загрузите образцы фигур для вставки фигур с помощью класса Diagram.
- Установите макет и экспортируйте блок-схему с помощью метода Save.
Эти шаги подробно описывают создание генератора блок-схем на C#. Прежде всего, создайте схему для указания ролей, обозначений и т. д., а затем используйте основные фигуры для добавления основных фигур, таких как прямоугольники, соединители и т. д. Наконец, добавьте фигуры и настройте макет, прежде чем сохранять выходную блок-схему в соответствии с вашими требованиями. .
Код для создания блок-схемы на 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; } | |
} |
Этот пример кода можно использовать для рисования блок-схемы на C#. Принимая во внимание, что пользовательские классы также определены для создания соединителей и прямоугольных форм. Впоследствии класс Diagram используется для загрузки основных фигур перед настройкой макета и экспортом созданной блок-схемы.
В этом руководстве подробно описана информация для создания построителя блок-схем на C#. Однако, если вы хотите объединить файлы Visio, обратитесь к статье как объединить файлы Visio в C#.