32 Stimmen

Welche Optionen gibt es für das Layout gerichteter oder ungerichteter Graphen in .NET?

Unter Grafik Ich meine damit etwas, das diesen Bildern ähnelt:

Die ideale Lösung wäre:

  • nur verwalteten Code verwenden
  • Ausgabe in ein Bitmap-Bild ermöglichen
  • Ausgabe an WPF-Elemente erlauben
  • eine Art interaktive Oberfläche für die Darstellung des Graphen, die das Zoomen, Schwenken und die Neuanordnung von Knoten unterstützt

Ich bin auch daran interessiert, von Projekten zu hören, die möglicherweise als Ausgangspunkt für diese Art von Arbeit dienen könnten. Wenn es eine gewisse Entwicklung erfordert, um das zu erreichen, was ich will, dann bin ich bereit, es in Angriff zu nehmen. Der komplexeste Teil dieses Ziels scheint darin zu bestehen, das Diagrammlayout in einem vernünftigen Zeitrahmen zu erstellen.

0 Stimmen

Als Notiz an mich selbst gibt es hier eine nett aussehende Clojure-Bibliothek lisperati.com/vijual

1voto

TFD Punkte 22840

Die Jungs von Mindscape ein solches Werkzeug haben

Mit dem fantasievollen Namen WPF-Flussdiagramme

Sehen Sie sich auch Vertigos Familie.zeigen Demoprojekt, hat es eine einfache Form dieser

0 Stimmen

WPF Flow Diagrams kostet USD 500 und bietet kein automatisches Layout des Diagramms. Es scheint aber eine gute WPF-Integration zu haben.

0 Stimmen

Die Anwendung Family.Show stellt Stammbäume dar, die (in der Regel!) eine einfache Teilmenge aller möglichen Graphen sind. Sie sind zum Beispiel azyklisch. Ich bin an Algorithmen interessiert, die eine große Vielfalt von Graphen darstellen können, wie z. B. der Sugiyama-Ansatz.

0 Stimmen

Ihr Produkt Star Diagrams scheint eine Art automatisches Layout zu haben. $149/Sitzplatz und bietet Baum und Kraft gerichtet. Ich habe es nicht verwendet und habe keine Ahnung, wie es den allgemeinen Fall behandelt, aber das entspricht eher dem, was Sie suchen, als ihr Produkt Flow Diagrams.

1voto

Jamie Penney Punkte 9110

Utilice QuickGraph zur Ausgabe von Dot-Dateien für GraphViz . Ich habe das bei einem kürzlich durchgeführten Projekt gemacht, und es scheint ganz gut zu funktionieren. Siehe hier für Beispielcode zum Parsen von .plain-Dateien, oder verwenden Sie mein Projekt aquí als Referenz für die reine Ausgabe von .png-Bildern.

1voto

Raoul Punkte 1088

Ich habe MsAgl verwendet und es ist ziemlich gut. Es hat auch Betrachter für beide WinForms und WPF, die vielleicht oder vielleicht nicht wichtig für Sie sein. Man muss die Viewer nicht verwenden, da sie ziemlich lose an die Graph-Layout-Engine gekoppelt sind.

Es unterstützt nicht alles, was Graphviz kann (vor allem in Bezug auf einige Formtypen). Auch die Dokumentation könnte besser sein, aber es ist ziemlich solide, wenn auch nicht das ausgefeilteste MS-Produkt überhaupt.

Es erfüllt alle von Ihnen genannten Anforderungen, obwohl die Reorganisation "beim Betrachter" lediglich das Verschieben von Knoten durch Ziehen, das Umleiten von Kanten und die Neupositionierung von Beschriftungen unterstützt. Das Diagramm reagiert nicht auf die Bewegungen dieser Elemente, indem andere Elemente neu positioniert werden.

1voto

Gilad Punkte 6145

Ich habe dies verwendet http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer Es ist ein Open-Source-Programm, das wirklich einfach zu benutzen ist. der Code ist wirklich gut erklärt.

0voto

RBerteig Punkte 39719

Es ist nicht .NET, aber ein oft referenziertes Toolkit zum Rendern von Graphen ist AT&T Graphviz . Ich selbst habe nur die eigenständigen Anwendungen verwendet, aber der Quellcode ist unter einer Art Open-Source-Lizenz verfügbar.

Graphviz wird von dem beliebten Code-Dokumentationswerkzeug doxygen um automatisch verschiedene Diagramme für die von ihm erstellte Dokumentation zu zeichnen.

0 Stimmen

Ich habe Graphviz in einem .NET-Assembly-Abhängigkeitsanalysator verwendet, den ich vor ein paar Jahren geschrieben habe. Es ist ziemlich einfach, gibt aber nur Bitmaps oder SVG aus und erfordert eine Installation auf dem Client, gefolgt von COM-Interop. Es ist nicht schlecht, aber nicht ganz das, was ich mir erhoffe!

0 Stimmen

Wenn jemand an einem groben Code interessiert ist, der WinGraphViz über COM verwendet, siehe drewnoakes.com/code/abhaengigkeitsanalysator ...der Code ist für VS2003 und es ist ein bisschen peinlich, zuzugeben, dass der Code von mir ist, aber es bringt den Punkt rüber.

0 Stimmen

Ich vermute, dass es möglich, aber nicht einfach wäre, das Herzstück von dot durch eine Portierung auf Managed C++ zu ersetzen. Ich verwende die Kommandozeilenwerkzeuge, um schnell Zustandsautomaten und ähnliches zu skizzieren. Dot kann auch PostScript ausgeben, was meinen Bedürfnissen entspricht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X