有限状態マシンを表すグラフを描く必要があります。 Graph# を使用しようとしました。クールですが、いくつかのものが欠けています。ドキュメントがなく、使用が非常に難しくなります。カスタムWPFコントロールを使用してループ(頂点からそれ自体へのエッジ)を描画できず、エッジのラベル付けも実装されていません。 WPFでグラフを描画するアドバイスされた他のライブラリがありますか?
必要な機能:
何か案は?
編集:
いくつかの提案がありましたが、感謝しています。しかし、私は自分の考えを明確にしていないと思います。この種のグラフが必要です。
これまでに提案されたすべてのツールはこれに適していないか、この状況でそれらを適用する方法がわからないかもしれません。
Graphviz + GraphViz C#Wrapper はまさに私が探していたものです。
無料
http://research.Microsoft.com/en-us/projects/msagl/
https://github.com/Microsoft/automatic-graph-layout.git
WinFormsですが、数行のコードでWPFにインポートできます。
http://research.Microsoft.com/en-us/projects/msagl/#Layouts
http://research.Microsoft.com/en-us/projects/msagl/faq.aspx
無料
http://quickgraph.codeplex.com/
このライブラリは100%C#です。 「Graphviz Support」という行に惑わされないでください。これは、C#コードを使用してGraphvizから出力をインポートすることを意味します。 C++コードが見えない。
http://www.codeproject.com/Articles/5603/QuickGraph-A-C-graph-library-with-Graphviz-Sup
NuGetパッケージがあります。
2003年から2011年まで開発中(8年!!)。
無料
http://graphsharp.codeplex.com/
https://sachabarbs.wordpress.com/2010/08/31/pretty-cool-graphs-in-wpf/
これは非常にうまく機能し、数時間で稼働しました。また、DataTemplates
をサポートしているため、各ノードに必要なルックアンドフィールを設定できます。
無料
http://graphviz4net.codeplex.com/
$$$
http://www.nwoods.com/products/godiagram/index.html
無料
http://www.codeproject.com/Articles/29518/A-Graph-Tree-Drawing-Control-for-WPF
適切ではありません。ツリーレイアウトです。
無料
http://www.codeproject.com/Articles/43776/Using-WPF-to-Visualize-a-Graph-with-Circular-Depen
無料
http://www.graphviz.org/Download..php
これはC#ではなく、非マネージコードを使用します。ただし、C#ラッパーがあります。
AT&Tによってオープンソース化された「AT&T Researchers —サービスの背後にある科学の発明」および「研究ホーム>ポートフォリオ>ソフトウェアツール」を参照してください: http://www.research.att.com/software_tools ?fbid = NEk8_gxLLEc
http://www.graphviz.org/Download_source.php
また、オープンソースのRserve!
無料
GraphVizのラッパー。
https://github.com/timothy-shields/graphviz
無料
http://www.codeproject.com/Articles/182683/NetworkView-A-WPF-custom-control-for-visualizing-a
このライブラリを使用すると、ユーザーはノード間の接続を作成できますが、これはおそらく少しやり過ぎです。
それはすべてMVVMです。
無料
http://gephi.github.io/ を参照してください
WPFグラフライブラリではありませんが、実際にニースグラフがどのように見えるかを示す優れた例を提供します。チュートリアルは素晴らしいです。
$$$
http://www.telerik.com/products/wpf/diagrams.aspx
$$$
http://www.infragistics.com/samples/wpf/network-node/overviewhttp:// www.infragistics.com/samples/wpf/network-node/relationship-between-nodeshttp://www.infragistics.com/samples/wpf/network-node/custom-node-style
無料
それほど多くのグラフ作成ツールではありませんが、キャンバス上の任意のタイプのオブジェクトを移動、サイズ変更、回転する方法を示しています。
http://www.codeproject.com/Articles/22952/WPF-Diagram-Designer-Part-1
無料
そして、誰かがこれをMVVMで再実装しました。それほど多くのグラフ作成ツールではありませんが、キャンバス上のあらゆるタイプのオブジェクトを移動、サイズ変更、回転する方法を示しています。
http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer
$$$
https://www.yworks.com/en/products_yfiles_practicalinfo_gallery.htmlhttps://www.yworks。 com/en/products_yfileswpf_about.html
$$$
http://www.mindfusion.eu/features-wpfdiagram.htmlhttp://www.mindfusion。 eu /
無料
DOTグラフを表示するためのWPFコントロール。
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://dynamicdatadisplay.codeplex.com/
$$$
WinForms専用ですが、WPFにインポートできます。ただし、個々のアイテムをテンプレート化することはできません。これはWPFソリューションの大きな利点です。
GraphX library for WPFを使用すると、すべての要件を簡単に実装できると思います。 Graph#に基づいており、詳細なドキュメントがあります。 http://panthernet.ru/en/projects-en/graphx-en
エッジおよび頂点テンプレートとともに、エッジラベル付けと自己ループエッジをサポートします。ご質問がある場合は、サイトのディスカッションセクションでお問い合わせください。
これが商業的なシナリオの場合は、 yWorks 'yFiles もご覧ください。
探しているすべての機能を備えており、最も優れた機能は、ダイアグラムを自動的に配置する機能です。より大きなステートマシンがある場合、またはコードでステートマシンを作成する場合でも、これにより、大きなダイアグラムでも自動的に明確に配置できます。また、ラベルには自動ラベル配置アルゴリズムがあり、ラベルの配置を見つけて、ラベルが互いにまたは他の無関係な要素と重ならないようにします。
ライブラリは このYoutube Video で実際にライブで見ることができますが、すぐに Silverlightライブデモオンライン で再生することも、ライブラリを評価してサンプルソースで再生することもできます。
免責事項:私はyWorksで働いていますが、SOでは雇用主を代表していません。
こちらで読むことができます 二部グラフに関する同様の質問で NetworkView
ループ、頂点ラベリング、カスタム頂点可視化があり、簡単に編集して円にすることができます。ただし、Edgeのラベル付けはないと思います。試してみてください。
少なくとも自分でやることを決めた場合、それは非常に良いスタートです。
Codeprojectの記事「循環依存のあるグラフを視覚化する」 をご覧ください。