![Создать блок-схему C#](images/create-flowchart-csharp.jpg#center)
Блок-схемы — это мощный визуальный инструмент для представления процессов и рабочих процессов. В этой записи блога мы рассмотрим, как создавать блок-схемы на C#. Независимо от того, создаете ли вы сложное приложение или просто хотите визуализировать простой процесс, создание блок-схем может быть полезно, когда вам нужно поделиться информацией с заинтересованной аудиторией.
Зачем создавать блок-схемы?
Создание блок-схем полезно по разным причинам. Например:
Автоматизированное документирование: автоматически создавайте блок-схемы на основе кода или файлов конфигурации, обеспечивая актуальность документации.
Динамические диаграммы: создавайте динамические блок-схемы, управляемые данными, которые могут изменяться в режиме реального времени в зависимости от ввода пользователя или других переменных.
Интеграция: встраивайте блок-схемы в свои приложения, позволяя пользователям взаимодействовать с ними и манипулировать ими непосредственно в программном обеспечении.
Генератор блок-схем — установка C# API
Чтобы следовать этому руководству, вам необходимо настроить Visual Studio IDE и подготовить среду, установив Conholdate.Total for .NET с помощью команды установки NuGet, приведенной ниже:
PM> NuGet\Install-Package Conholdate.Total
Создать блок-схему на C#
Вы можете научиться создавать блок-схему на C#, добавив несколько фигур и соединителей:
- Начните с создания схемы блок-схемы.
- Загрузите мастер, чтобы добавить фигуры, используя класс Diagram.
- Добавьте фигуры и соединители согласно схеме.
- Организуйте макет блок-схемы.
- Наконец, сохраните блок-схему как файл VSDX, используя метод Save.
В приведенном ниже примере кода показано, как создать блок-схему на C#:
namespace CreateFlowchart
{
class Program
{
static void Main(string[] args)
{
//схема для диаграммы, которая будет создана
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"
}
}
};
Diagram diagram = new Diagram("BasicShapes.vss");
Page page = diagram.Pages[0];
Dictionary<string, long> shapeNames = new Dictionary<string, long>();
//Добавление фигур и соединителей из схемы
foreach (var rectangle in diagramObject.InputRectangles)
{
Shape shape = new Shape();
var shapeId = diagram.AddShape(shape, @"Rectangle", 0);
shapeNames.Add(rectangle.Name, shapeId);
shape = page.Shapes.GetShape(shapeId);
shape.Text.Value.Add(new Txt(rectangle.Text));
}
foreach (var connector in diagramObject.InputConnectors)
{
var connectorId = diagram.AddShape(new Shape(), "Dynamic connector", 0);
page.ConnectShapesViaConnector(shapeNames[connector.OriginShapeName],
ConnectionPointPlace.Right,
shapeNames[connector.DestinationShapeName],
ConnectionPointPlace.Left,
connectorId);
}
LayoutOptions layoutOptions = new LayoutOptions()
{
LayoutStyle = LayoutStyle.FlowChart,
Direction = LayoutDirection.LeftToRight,
SpaceShapes = 5,
EnlargePage = true
};
diagram.Layout(layoutOptions);
page.PageSheet.PrintProps.PrintPageOrientation.Value = PrintPageOrientationValue.Landscape;
DiagramSaveOptions saveOptions = new DiagramSaveOptions()
{
SaveFormat = SaveFileFormat.Vsdx,
AutoFitPageToDrawingContent = true
};
diagram.Save("output.vsdx", saveOptions);
}
}
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; }
}
}
Демо-проект
Вы можете скачать рабочий пример проекта со своей стороны, чтобы быстро продемонстрировать эту функцию. Более того, его можно дополнительно улучшить, изменив формы, соединения, разъемы и т. д. для тестирования различных вариантов использования.
Бесплатная пробная лицензия
Вы можете получить бесплатную временную лицензию для тестирования API на полную мощность.
Подведение итогов
Программное создание блок-схем на C# — это мощный способ автоматизации визуализации процессов и рабочих процессов. С помощью закрытых классов и вызовов методов вы можете быстро создавать динамические и интерактивные блок-схемы. Мы надеемся, что это руководство предоставило вам прочную основу для создания собственных блок-схем на C#. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форум.
Часто задаваемые вопросы
Могу ли я создавать более сложные блок-схемы с дополнительными фигурами и соединителями?
Да, вы можете создать столько фигур и соединителей, сколько необходимо для представления любого процесса.
Могу ли я экспортировать блок-схему в изображение или PDF?
Да, он поддерживает экспорт блок-схем в различные форматы, включая изображения и PDF-файлы.
Могу ли я добавить собственные фигуры в блок-схему?
Да, вы можете создавать собственные формы. Это позволяет создавать формы, соответствующие вашим конкретным потребностям.