18. Jul 2022
Lesedauer 6 Min.
.NET Diagrams
Fünf Open-Source-Lösungen zur Ausgabe von Diagrammen in .NET-Anwendungen
Mit diesen Komponenten gestalten Sie dynamische Diagramme zur Laufzeit.

Diagramme erfasst der Mensch wesentlich schneller als irgendwelche Zahlenkolonnen. Deshalb kommt der Visualisierung von Daten eine große Bedeutung zu. Ganz gleich, ob die Zahlen aus Datenbanken oder Kalkulationstabellen kommen: Die Darstellung übernimmt dann eine Komponente. Dabei stehen häufig verschiedene Diagrammtypen wie Achsen-, Kreis-, Netz-, Funktions- oder Mengendiagramme zur Verfügung.Neben der Generierung aus Daten lassen sich Diagramme auch manuell zeichnen. Dazu kommen grafische Entwurfsprogramme zum Einsatz. Die bekanntesten Programme sind Microsoft Visio, LibreOffice/StarOffice Draw oder Dia.Die Grafik- und Entwurfsprogramme offerieren grundlegende Objekte für einen freien Entwurf, wie Figuren, Linien und Pfeile, variable Farben und Beschriftungen, mit deren Hilfe Sie interaktiv Diagramme ohne Datenanbindung erstellen.In Diagrammzeichenprogrammen werden grafische Objekte per Drag & Drop auf Zeichenflächen übernommen, in Größe und Darstellung angepasst und gegebenenfalls über Linien und Pfeile miteinander verbunden. Über Eigenschaften verändern Sie zudem das Aussehen der einzelnen Zeichenelemente. An dieser Stelle werden quelloffene Lösungen vorgestellt, über die Sie Zeichenfunktionen für Diagramme in eigene Anwendungen aufnehmen.
Diagram.NET: Diagramme für WinForms
Diagram.NET ist eine einfache Lösung mit Visio-Grundfunktionalität, die in C# entwickelt wurde, der Apache-2.0-Lizenz unterliegt und auf GitHub bereitgestellt wird. Das Projekt definiert ein grafisches Diagrammsteuerelement mit dem Namen Diagramm.NET für die Windows Forms und bietet zudem eine Beispielanwendung. Damit zeichnen Sie vordefinierte Figuren (Rechtecke, Ellipsen und Kommentare), ändern die Eigenschaften per Eigenschaftsgitternetz, setzen Objekte wahlweise in den Vorder- oder Hintergrund, verändern Beschriftungen, Rahmen, Platzierungen und Größen oder auch Farbverläufe. Das Drehen von Grafikobjekten wird nicht unterstützt. Grafiken werden im programmeigenen dng-Format verwaltet.
1
Der WPF Diagram Designer ist ein vierteiliges, umfassendes Open-Source-Tutorial für die Realisierung eines leistungsfähigen Diagram Designers für WPF (Windows Presentation Foundation). Die Lösung findet sich auf CodeProject, unterliegt der CPOL-Lizenz und wird im Quelltext- und Binärformat angeboten. Der erste Teil widmet sich dem Aufnehmen, der Größenänderung, dem Verschieben sowie dem Rotieren von grafischen Elementen in Canvas-Zeichenbereichen. Dabei wird besonderer Wert auf eine attraktive Bereitstellung von Zugriffspunkten (Adorner) gelegt.Der zweite Teil optimiert die Funktionalitäten zur Objektpositionierung, zeigt die Übernahme von grafischen Elementen (Symbole, Figuren) aus einer Werkzeugsammlung per Drag-and-drop (mitsamt der Elementverwaltung), definiert Zoomfunktionen und zeigt die Gummiband- und Tastaturauswahl von Objekten.Der dritte Teil widmet sich dann dem Erstellen von Verbindunglinien und -pfeilen. Auch hier wird den variablen Verbindungsvarianten besonderer Raum zugestanden.Weiterführende Bearbeitungsfunktionen zeigt dann der vierte und letzte Teil, wie das Laden und Speichern von Diagrammen, das Ausschneiden, Kopieren, Einfügen und Löschen von grafischen Objekten, das Ausrichten von Objekten, das horizontale oder vertikale Ausrichten von Objekten untereinander sowie das Platzieren von Objekten in den Vorder- oder Hintergrund.Alle Funktionen sind in einer Beispielanwendung zusammengefasst, die bereits als attraktiver Diagrammeditor einsetzbar ist. Weiterführende Exportformate werden nicht definiert und sind bei Bedarf selbst nachzurüsten.www.dotnetpro.de/SL2208HighFive1DIA: Die Open-Source-Diagrammalternative zu VISIO
Wollen Sie sich die Umsetzung eines Zeichenprogramms für das Entwerfen strukturierter Diagramme näher anschauen, dann sei die Open-Source-Alternative zu Visio mit dem Namen DIA empfohlen. Die Software unterliegt der GPL-V2-Lizenz, ist Bestandteil des Gnome-Projektes, wurde mit der Programmiersprache Python entwickelt und ist zudem plattformübergreifend nutzbar (zum Beispiel Windows, Linux, MacOS). Vordefinierte Grafikelemente für bestimmte Diagrammtypen werden hier über circa 30 vordefinierte Symbolbibliotheken bereitgestellt (zum Beispiel Fluss- und Netzwerkdiagramme, UML-Diagramme, elektrische Schaltpläne). Generierte Zeichnungen lassen sich in unterschiedliche Formate exportieren (zum Beispiel png, pdf, eps, svg, cgm). DIA verwendet eine gezippte XML-Datei als Standarddatenformat. Um die Grafikfunktionalität plattformübergreifend verfügbar zu machen, nutzt das Programm das GUI-Toolkit GTK+ (GTK - GIMP Toolkit).
2
Auch das Projekt MVVM Diagram Designer findet sich auf CodeProject, wurde mit C# entwickelt und unterliegt der CPOL-Lizenz. Es basiert grundlegend auf dem zuvor vorgestellten Projekt WPF Diagram Designer.Nutzt das letztgenannte Projekt einen Ansatz mit einer steuerelementorientierten Datenverwaltung, soll diese Lösung einen MVVM-getriebenen Ansatz (Model-View-ModelView) verfolgen. Dies erfordert weitreichende Quelltextanpassungen sowie zusätzlichen Code. Einzelne Funktionen finden dabei keine gesonderte Berücksichtigung, wie das Rotieren und Ändern von Größen bei Elementen.Die Datenanbindung an grafische Elemente soll ebenso unterstützt werden wie das Löschen von Elementen über ein ICommand-Interface. Die Diagrammanlage ist per ViewModel steuerbar und auch komplexere Objekte werden per ViewModel angelegt. Grafische Elemente sollen zudem verknüpfbar und manipulierbar sein. Diagramme werden in einem Sicherungsspeicher abgelegt und darüber auch wieder geladen. Vom ursprünglichen Projekt wurden lediglich zwei Klassen unverändert übernommen. Der restliche Quellcode ist neu implementiert. Die Umsetzung erfolgt in sechs wesentlichen Schrittenwww.dotnetpro.de/SL2208HighFive2WpfShapeEditor: Einfache Lösung für den Einstieg
Mit dem WpfShapeEditor liegt eine weitere quelloffene Lösung vor, die die Grundfunktionen eines Diagram Editors zeigt. Für WPF mit der Programmiersprache C# entwickelt, wird sie über GitHub angeboten und unterliegt der MIT-Lizenz. Damit lassen sich Objekte zeichnen, bewegen und deren Größe anpassen – alles zur Laufzeit. Die Lösung macht die Funktionalität über eine Klassendatei verfügbar, die Sie in eigene Lösungen einbinden. Für komplexere Anwendungen lässt sich die Lösung ausbauen.