Flussdiagramm erstellen C#

Flussdiagramme sind ein leistungsstarkes visuelles Werkzeug zur Darstellung von Prozessen und Arbeitsabläufen. In diesem Blogbeitrag erfahren Sie, wie Sie Flussdiagramme in C# erstellen. Ganz gleich, ob Sie eine komplexe Anwendung erstellen oder nur einen einfachen Prozess visualisieren müssen: Das Erstellen von Flussdiagrammen kann nützlich sein, wenn Sie Informationen mit dem betreffenden Publikum teilen müssen.

Warum Flussdiagramme erstellen?

Das Erstellen von Flussdiagrammen ist aus verschiedenen Gründen hilfreich. Zum Beispiel:

Automatisierte Dokumentation: Erstellen Sie automatisch Flussdiagramme auf Grundlage von Code oder Konfigurationsdateien und stellen Sie so eine aktuelle Dokumentation sicher.

Dynamische Diagramme: Erstellen Sie dynamische, datengesteuerte Flussdiagramme, die sich basierend auf Benutzereingaben oder anderen Variablen in Echtzeit ändern können.

Integration: Betten Sie Flussdiagramme in Ihre Anwendungen ein, sodass Benutzer direkt in der Software mit ihnen interagieren und sie bearbeiten können.

Flussdiagrammgenerator – C# API-Installation

Um diesem Tutorial folgen zu können, müssen Sie Visual Studio IDE konfigurieren und die Umgebung vorbereiten, indem Sie Conholdate.Total für .NET mit dem folgenden NuGet-Installationsbefehl installieren:

PM> NuGet\Install-Package Conholdate.Total

Erstellen eines Flussdiagramms in C#

Sie können lernen, ein Flussdiagramm in C# zu erstellen, indem Sie einige Formen und Konnektoren hinzufügen:

  • Beginnen Sie mit der Erstellung des Schemas für das Flussdiagramm.
  • Laden Sie den Master, um mit der Diagrammklasse Formen hinzuzufügen.
  • Fügen Sie gemäß dem Schema Formen und Verbinder hinzu.
  • Ordnen Sie das Layout für das Flussdiagramm an.
  • Speichern Sie abschließend das Flussdiagramm mit der Methode „Speichern“ als VSDX-Datei.

Der folgende Beispielcode zeigt, wie ein Flussdiagramm in C# generiert wird:

namespace CreateFlowchart
{
    class Program
    {
        static void Main(string[] args)
        {
            //Schema für das zu erstellende Diagramm
            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>();

            //Hinzufügen von Formen und Konnektoren aus dem Schema
            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; }
    }
}

Demo-Projekt

Sie können das funktionierende Beispielprojekt für eine schnelle Demonstration der Funktion herunterladen. Darüber hinaus kann es durch Ändern der Formen, Verbindungen, Konnektoren usw. zum Testen verschiedener Anwendungsfälle weiter verbessert werden.

Kostenlose Evaluierungslizenz

Sie können eine kostenlose temporäre Lizenz erhalten, um die APIs in vollem Umfang zu testen.

Zusammenfassen

Das programmgesteuerte Erstellen von Flussdiagrammen in C# ist eine leistungsstarke Möglichkeit, die Visualisierung von Prozessen und Arbeitsabläufen zu automatisieren. Mithilfe von abgedeckten Klassen und Methodenaufrufen können Sie schnell dynamische und interaktive Flussdiagramme erstellen. Wir hoffen, dass dieses Tutorial Ihnen eine solide Grundlage für die Erstellung Ihrer eigenen Flussdiagramme in C# geboten hat. Bei Unklarheiten wenden Sie sich bitte an uns im Forum.

FAQs

Kann ich komplexere Flussdiagramme mit zusätzlichen Formen und Konnektoren erstellen?

Ja, Sie können so viele Formen und Konnektoren erstellen, wie Sie zur Darstellung eines beliebigen Prozesses benötigen.

Kann ich das Flussdiagramm als Bild oder PDF exportieren?

Ja, es unterstützt den Export von Flussdiagrammen in verschiedene Formate, einschließlich Bilder und PDFs.

Kann ich dem Flussdiagramm benutzerdefinierte Formen hinzufügen?

Ja, Sie können benutzerdefinierte Formen erstellen. Auf diese Weise können Sie Formen erstellen, die auf Ihre spezifischen Anforderungen zugeschnitten sind.

Siehe auch