I need to draw graphs representing finite state machines. I tried to use Graph#. It's cool, but it lacks some things. There is no documentation, which makes it very difficult to use, I cannot draw loops (edges from a vertex to itself) using its custom WPF control and labeling edges is also not implemented. Is there any other library o adviced way of drawing graphs in WPF?
Functionality I need:
Any ideas?
EDIT:
I got some propositions, for which I am grateful. However, I think I have not made my thought clear. I need this kind of graph:
All tools suggested as far are not suitable for this or maybe I don't know how to apply them in this situation.
Free
http://research.microsoft.com/en-us/projects/msagl/
https://github.com/Microsoft/automatic-graph-layout.git
It's WinForms, but it can be imported into WPF with a few lines of code.
http://www.codeguru.com/csharp/.net/net_wpf/article.php/c16963/Visualizing-Nodes-and-Edges-with-Microsoft-Automatic-Graph-Layout.htm
http://research.microsoft.com/en-us/projects/msagl/#Layouts
http://research.microsoft.com/en-us/projects/msagl/faq.aspx
Free
http://quickgraph.codeplex.com/
This library is 100% C#. Don't be misled by the line "Graphviz Support", this means that it uses C# code to import the output from Graphviz. No C++ code in sight.
http://www.codeproject.com/Articles/5603/QuickGraph-A-C-graph-library-with-Graphviz-Sup
Has a NuGet package.
Under development from 2003 to 2011 (8 years!!).
Free
http://graphsharp.codeplex.com/
https://sachabarbs.wordpress.com/2010/08/31/pretty-cool-graphs-in-wpf/
This one worked really well, was up and running in a couple of hours. It also supports DataTemplates
, so each node can have any look and feel that you want.
Free
http://graphviz4net.codeplex.com/
$$$
http://www.nwoods.com/products/godiagram/index.html
Free
http://www.codeproject.com/Articles/29518/A-Graph-Tree-Drawing-Control-for-WPF
No suitable. It's a tree layout.
Free
http://www.codeproject.com/Articles/43776/Using-WPF-to-Visualize-a-Graph-with-Circular-Depen
Free
http://www.graphviz.org/Download..php
This is not C#, and uses non-managed code. There are C# wrappers for it, however.
Opensourced by AT&T, see "AT&T Researchers — Inventing the Science Behind the Service", and "research home > portfolio > software tools": http://www.research.att.com/software_tools?fbid=NEk8_gxLLEc
http://www.graphviz.org/Download_source.php
They also open sourced Rserve!
Free
Wrapper for GraphViz.
https://github.com/timothy-shields/graphviz
Free
http://www.codeproject.com/Articles/182683/NetworkView-A-WPF-custom-control-for-visualizing-a
This library allows the user to create connections between nodes, which is probably a bit of an overkill.
https://channel9.msdn.com/coding4fun/blog/Noodling-Network-Nodes-Diagraming-with-the-NetworkView-custom-WPF-control
It's all MVVM.
Free
See http://gephi.github.io/
Not a WPF graphing library, but provides great examples of how really nice graphs can look. The tutorial is excellent.
$$$
http://www.telerik.com/products/wpf/diagrams.aspx
$$$
http://www.infragistics.com/samples/wpf/network-node/overview http://www.infragistics.com/samples/wpf/network-node/relationship-between-nodes http://www.infragistics.com/samples/wpf/network-node/custom-node-style
Free
Not so much graphing tool, but it does show you how to move, resize and rotate objects of any type on a canvas.
http://www.codeproject.com/Articles/22952/WPF-Diagram-Designer-Part-1
Free
And, somebody reimplemented this in MVVM: Not so much graphing tool, but it does show you how to move, resize and rotate objects of any type on a canvas.
http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer
$$$
https://www.yworks.com/en/products_yfiles_practicalinfo_gallery.html https://www.yworks.com/en/products_yfileswpf_about.html
$$$
http://www.mindfusion.eu/features-wpfdiagram.html http://www.mindfusion.eu/
Free
A WPF control for viewing DOT graphs.
http://www.codeproject.com/Articles/18870/Dot-WPF-a-WPF-control-for-viewing-Dot-graphs
$$$
https://www.syncfusion.com/products/wpf/diagram
$$$
https://www.componentsource.com/product/addflow-wpf-standard
$$$
http://www.lassalle.com/
http://dynamicdatadisplay.codeplex.com/
$$$
https://www.nevron.com/
Only for WinForms, but can be imported into WPF. However, each individual item cannot be templated, which is a big advantage of WPF solutions.
Graphviz + GraphViz C# Wrapper are exactly what I was looking for.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With