c# - How to easily draw graphs in WPF? -


i need draw graphs representing finite state machines. tried use graph#. it's cool, lacks things. there no documentation, makes difficult use, cannot draw loops (edges vertex itself) using custom wpf control , labeling edges not implemented. there other library o adviced way of drawing graphs in wpf?

functionality need:

  • edge labeling
  • loop (cyclic) edges
  • vertex labeling
  • drawing single/double circles around vertices - vertices should represented either circle (or double circle) label inside

any ideas?

edit: got propositions, grateful. however, think have not made thought clear. need kind of graph: http://static.max99x.com/school/automata-editor1.png. tools suggested far not suitable or maybe don't know how apply them in situation.

option 1: microsoft automatic graph layout

free

http://research.microsoft.com/en-us/projects/msagl/

github

https://github.com/microsoft/automatic-graph-layout.git

winforms >> wpf

it's winforms, can imported wpf few lines of code.

visualizing nodes , edges microsoft automatic graph layout

http://www.codeguru.com/csharp/.net/net_wpf/article.php/c16963/visualizing-nodes-and-edges-with-microsoft-automatic-graph-layout.htm

examples

http://research.microsoft.com/en-us/projects/msagl/#layouts

faq

http://research.microsoft.com/en-us/projects/msagl/faq.aspx

option 2: quickgraph - 100% c# graph library graphviz support

free

http://quickgraph.codeplex.com/

this library 100% c#. don't misled line "graphviz support", means uses c# code import output graphviz. no c++ code in sight.

http://www.codeproject.com/articles/5603/quickgraph-a-c-graph-library-with-graphviz-sup

has nuget package.

under development 2003 2011 (8 years!!).

option 3: graphsharp

free

http://graphsharp.codeplex.com/

  • depends on quickgraph (which 100% c#).
  • supports async/await (nice!).

demo

https://sachabarbs.wordpress.com/2010/08/31/pretty-cool-graphs-in-wpf/

notes

this 1 worked well, , running in couple of hours. supports datatemplates, each node can have , feel want.

option 4: graphviz4net

free

http://graphviz4net.codeplex.com/

option 5: godiagram

$$$

http://www.nwoods.com/products/godiagram/index.html

option 6: graph tree drawing control wpf

free

http://www.codeproject.com/articles/29518/a-graph-tree-drawing-control-for-wpf

no suitable. it's tree layout.

option 7: using wpf visualize graph circular dependencies

free

http://www.codeproject.com/articles/43776/using-wpf-to-visualize-a-graph-with-circular-depen

option 8: graphviz

free

http://www.graphviz.org/download..php

this not c#, , uses non-managed code. there c# wrappers it, however.

opensourced at&t, see "at&t researchers — inventing science behind service", , "research home > portfolio > software tools": http://www.research.att.com/software_tools?fbid=nek8_gxllec

source

http://www.graphviz.org/download_source.php

they open sourced rserve!

option 9: shields.graphviz

free

wrapper graphviz.

https://github.com/timothy-shields/graphviz

option 10: networkview: wpf custom control visualizing , editing networks, graphs , flow-charts

free

http://www.codeproject.com/articles/182683/networkview-a-wpf-custom-control-for-visualizing-a

this library allows user create connections between nodes, bit of overkill.

example

https://channel9.msdn.com/coding4fun/blog/noodling-network-nodes-diagraming-with-the-networkview-custom-wpf-control

it's mvvm.

option 11: gephi - open graph viz platform

free

see http://gephi.github.io/

not wpf graphing library, provides great examples of how nice graphs can look. tutorial excellent.

option 12: telerik

$$$

http://www.telerik.com/products/wpf/diagrams.aspx

option 13: infragistics

$$$

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

option 14: wpf diagram designer

free

not graphing tool, show how move, resize , rotate objects of type on canvas.

http://www.codeproject.com/articles/22952/wpf-diagram-designer-part-1

option 15: mvvm diagram designer

free

and, reimplemented in mvvm: not graphing tool, show how move, resize , rotate objects of type on canvas.

http://www.codeproject.com/articles/484616/mvvm-diagram-designer

option 16: yworks - diagramming company

$$$

https://www.yworks.com/en/products_yfiles_practicalinfo_gallery.html https://www.yworks.com/en/products_yfileswpf_about.html

option 17: mindfusion

$$$

http://www.mindfusion.eu/features-wpfdiagram.html http://www.mindfusion.eu/

option 18: dot2wpf

free

a wpf control viewing dot graphs.

http://www.codeproject.com/articles/18870/dot-wpf-a-wpf-control-for-viewing-dot-graphs

option 19: syncfusion

$$$

https://www.syncfusion.com/products/wpf/diagram

option 20: addflow

$$$

https://www.componentsource.com/product/addflow-wpf-standard

option 21: lassalle

$$$

http://www.lassalle.com/

option 22: dynamic data display

http://dynamicdatadisplay.codeplex.com/

option 23: nevron

$$$

https://www.nevron.com/

only winforms, can imported wpf. however, each individual item cannot templated, big advantage of wpf solutions.

google search terms

  • "workflow wpf graphing"
  • "wpf graphing library"
  • "wpf state machine library"

Comments

Popular posts from this blog

c# - Operator '==' incompatible with operand types 'Guid' and 'Guid' using DynamicExpression.ParseLambda<T, bool> -