我需要绘制表示有限状态机的图表。我试着使用Graph#。它很酷,但它缺少一些东西。没有文档,这使得它很难使用,我不能用它的自定义WPF控件来绘制循环(从顶点到它自己的边),并且标记边也没有实现。在WPF中还有其他的图形绘制方法吗?
我需要的功能:
有什么想法吗?
编辑:
我有一些主张,我对此表示感谢。不过,我想我并没有清楚表达我的想法。我需要这种图表:
到目前为止,所有建议的工具都不适合这种情况,或者我可能不知道如何在这种情况下应用它们。
发布于 2013-06-18 14:18:47
墨维兹 + GraphViz C#包装器正是我想要的。
发布于 2015-07-21 11:31:00
选项1: Microsoft自动图形布局
免费
http://research.microsoft.com/en-us/projects/msagl/
GitHub
https://github.com/Microsoft/automatic-graph-layout.git
Winforms >> WPF
它是WinForms,但是可以用几行代码将其导入WPF。
用Microsoft自动图形布局可视化节点和边缘
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
选项2: QuickGraph -一个支持Graphviz的100% C#图片库
免费
http://quickgraph.codeplex.com/
这个库是100% C#。不要被"Graphviz支持“行误导,这意味着它使用C#代码从Graphviz导入输出。没有C++代码在望。
http://www.codeproject.com/Articles/5603/QuickGraph-A-C-graph-library-with-Graphviz-Sup
有一个NuGet包。
2003年至2011年正在开发(8年)。
备选方案3: GraphSharp
免费
http://graphsharp.codeplex.com/
演示
https://sachabarbs.wordpress.com/2010/08/31/pretty-cool-graphs-in-wpf/
备注
这个很好用,在几个小时内就开始运行了。它还支持DataTemplates
,因此每个节点都可以有您想要的任何外观和感觉。
备选方案4: Graphviz4net
免费
http://graphviz4net.codeplex.com/
备选方案5: GoDiagram
$$$
http://www.nwoods.com/products/godiagram/index.html
选项6: WPF的图树绘制控件
免费
http://www.codeproject.com/Articles/29518/A-Graph-Tree-Drawing-Control-for-WPF
不合适。这是树的布局。
选项7:使用WPF可视化具有圆形依赖关系的图形
免费
http://www.codeproject.com/Articles/43776/Using-WPF-to-Visualize-a-Graph-with-Circular-Depen
备选方案8: GraphViz
免费
http://www.graphviz.org/Download..php
这不是C#,而是使用非托管代码.不过,也有一些C#包装器。
AT&T开放,参见"AT&T研究人员-发明服务背后的科学“和"research > portfolio >软件工具”:gxLLEc
来源
他们还开源了Rserve!
备选案文9: Shields.GraphViz
免费
GraphViz的包装器。
https://github.com/timothy-shields/graphviz
选项10: NetworkView:用于可视化和编辑网络、图形和流程图的WPF自定义控件
免费
http://www.codeproject.com/Articles/182683/NetworkView-A-WPF-custom-control-for-visualizing-a
这个库允许用户在节点之间创建连接,这可能有点过火了。
示例
都是MVVM。
选项11: Gephi -开放式图形Viz平台
免费
不是WPF图形库,而是提供了非常好的图形外观的很好的例子。这个教程很棒。
备选方案12: Telerik
$$$
http://www.telerik.com/products/wpf/diagrams.aspx
备选案文13:不脆弱性
$$$
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
选项14: WPF图表设计器
免费
不是那么多绘图工具,但它确实向您展示了如何移动、调整大小和旋转画布上任何类型的对象。
http://www.codeproject.com/Articles/22952/WPF-Diagram-Designer-Part-1
选项15: MVVM图表设计器
免费
而且,有人在MVVM中重新实现了这一点:不是那么多绘图工具,但它确实向您展示了如何在画布上移动、调整大小和旋转任何类型的对象。
http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer
选项16: yWorks -图表公司
$$$
备选方案17: MindFusion
$$$
http://www.mindfusion.eu/features-wpfdiagram.html http://www.mindfusion.eu/
备选方案18: Dot2WPF
免费
用于查看DOT图形的WPF控件。
http://www.codeproject.com/Articles/18870/Dot-WPF-a-WPF-control-for-viewing-Dot-graphs
备选方案19: SyncFusion
$$$
https://www.syncfusion.com/products/wpf/diagram
备选方案20: AddFlow
$$$
https://www.componentsource.com/product/addflow-wpf-standard
备选案文21: Lassalle
$$$
选项22:动态数据显示
http://dynamicdatadisplay.codeplex.com/
备选案文23: Nevron
$$$
只适用于WinForms,但可以导入WPF。但是,每个单独的项目都不能被模板化,这是WPF解决方案的一个巨大优势。
谷歌搜索术语
发布于 2013-06-18 10:11:50
我认为您可以使用GraphX库轻松地实现WPF的所有需求。它基于Graph#,有详细的文档。http://panthernet.ru/en/projects-en/graphx-en
它支持边缘标签和自环边,以及边和顶点模板.如果你有任何问题,你可以在网站上的讨论部分提问。
https://stackoverflow.com/questions/16479768
复制相似问题