Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Lesedauer 6 Min.

.NET Diagrams

Mit diesen Komponenten gestalten Sie dynamische Diagramme zur Laufzeit.
© dotnetpro
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 grundlegen­de 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/SL2208HighFive1

DIA: 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 Quelltext­anpassungen 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 View­Model 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/SL2208HighFive2

WpfShapeEditor: 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 ein­binden. Für komplexere Anwendungen lässt sich die Lösung ausbauen.

 3 

Das Reflective Class Diagram Creation Tool ist eine weitere Lösung auf Codeproject, die ebenfalls in C# realisiert wurde und der CPOL-Lizenz unterliegt. Sie zeigt, wie Sie aus .NET-Anwendungen selbst Klassendiagramme generieren. Die Lösung liegt in zwei Programmversionen vor. Die erste Variante zeigt das Öffnen einer Datei, die Prüfung auf CLR-Konformität, das Generieren von Projektbäumen und Klassen, die Klassenanalyse per Reflection, die Auswahl der anzuzeigenden Elemente und die Diagrammanlage samt Speicherung und Druckfunktion.Der zweite Teil widmet sich dem Verschieben von Diagrammelementen, der optimierten Darstellung von Verbindungslinien und der verbesserten Ausgabe von Diagrammen. Die Lösung zeigt insbesondere die Auswertung von .NET-Assemblies via Reflection, die Integration von IL-Funktionscode (Intermediate Language) und die grafische und dynamische Diagrammausgabe via GDI+. Neben einem Beispielprogramm erhalten Sie eine Assembly-DLL, die Sie zur Funktio­nalität in eigenen Programmen nutzen können.www.dotnetpro.de/SL2208HighFive3

 4 

Das Projekt QuickDiagram findet sich als Open-Source-Variante auf GitHub und zeigt, wie Sie ein Quelltextvisualisierungsdiagramm erzeugen, wobei die Ausgabe direkt innerhalb in Visual Studio erfolgt. Unterstützt werden die Visual-Studio-Versionen 2015, 2017 und 2019. Das Add-in unterliegt der GPL-V2-Lizenz und legt Quelltextstrukturen und Beziehungen grafisch offen.Es bietet die Grundfunktionen von CodeMap. CodeMap ist eine Funktion der Enterprise-Editionen von Visual Studio. In den generierten Grafiken doppelklicken Sie auf Knoten, um zu den zugehörigen Quelltextdeklarationen zu springen. Diagramme lassen sich als Bilder speichern oder direkt über die Zwischenablage austauschen. Mittlerweile ist die Lösung in einer erweiterten Fassung kommerziell über die Projektseite codartis erhältlich (rund 60 US-Dollar).www.dotnetpro.de/SL2208HighFive4

 5 

NetworkView ist ein weiteres Beispielprojekt in C#, das Sie auf CodeProject finden und das der MIT-Lizenz unterliegt. Es zeigt die Erstellung eines WPF-Steuerelements, über das Sie Netzwerkdiagramme, Graphen und Flussdiagramme visualisieren und bearbeiten. Die Lösung zeichnet sich insbesondere durch eine umfassende und detaillierte Beschreibung zur Umsetzung aus (zum Beispiel MVVM, WPF-Stile, Steuerelementvorlagen, Datenvorlagen, Entwurfskonzepte, Objekte und Verbindungen, User-Interface-Elemente sowie Arbeitsschritte zur Umsetzung). ⇥Andreas Maslowww.dotnetpro.de/SL2208HighFive5

Neueste Beiträge

Müssen Ziele SMART sein?
Wenn es um Ziele im Projektmanagement oder in der Führung einer Organisation geht, stoßen wir schnell und fast ausnahmslos auf das Akronym SMART. Was steckt dahinter, und kann es nicht auch sinnvolle Ziele geben, die nicht SMART sind?
8 Minuten
Managed DevOps Pools - Azure DevOps Pipelines Security
Agent Pools als Managed Service mit einfacher Integration in private Netzwerke und Authentisierung mittels Managed Identity tragen deutlich zur Sicherheit der Agent-Infrastruktur bei.
7 Minuten
7. Aug 2025
Browser-Apps mit Avalonia entwickeln - Avalonia
Klassische UI-Frameworks finden ihren Weg in den Browser
7 Minuten
11. Aug 2025
Miscellaneous

Das könnte Dich auch interessieren

Sicher ist sicher - Azure DevOps Pipelines Security
Als integraler Bestandteil der Entwicklungsumgebung ist Azure DevOps Pipelines oft Ziel von Angriffen. Da ist es gut zu wissen, wo die Schwachstellen des Systems liegen.
14 Minuten
16. Jun 2025
React, Angular und Vue.js: Eine Gegenüberstellung von Frontend-Frameworks - Web
Moderne JavaScript-Frameworks sorgen für höchste Effizienz in der Webentwicklung. Doch welches Framework eignet sich für welchen Einsatz?
10 Minuten
29. Feb 2024
CodeProject.AI Server in neuer Version - Lokaler AI-Server
CodeProject.AI Server (jetzt in Version 2.1.10) ist ein lokal installierter, selbstgehosteter, schneller, kostenloser und Open Source Artificial Intelligence Server für jede Plattform und jede Sprache.
2 Minuten
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige