Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。












想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。

5年前关闭。



Improve this question




我需要绘制表示有限状态机的图形。我尝试使用Graph#。很酷,但是缺少一些东西。没有文档,这使得使用起来非常困难,我无法使用其自定义WPF控件绘制循环(从顶点到自身的边),并且也未实现标签边。在WPF中还有其他建议使用的图形绘制库吗?

我需要的功能:
  • 边缘标签
  • 循环(循环)边
  • 顶点标签
  • 在顶点周围绘制单/双圆-顶点应表示为圆(或双圆),并在
  • 内带有标签

    有任何想法吗?

    编辑:

    我提出了一些建议,对此我深表感谢。但是,我想我还没有说清楚。我需要这种图:

    c# - 如何在WPF中轻松绘制图形?-LMLPHP

    到目前为止,建议使用的所有工具都不适合于此,或者我不知道如何在这种情况下应用它们。

    最佳答案

    选项1:Microsoft自动图形布局
    自由
    http://research.microsoft.com/en-us/projects/msagl/
    的GitHub
    https://github.com/Microsoft/automatic-graph-layout.git
    Winforms >> WPF
    它是WinForms,但可以通过几行代码将其导入WPF。
    使用Microsoft自动图形布局可视化节点和边
    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
    选项2:QuickGraph-具有Graphviz支持的100%C#图形库
    自由
    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年!)。
    选项3:GraphSharp
    自由
    http://graphsharp.codeplex.com/

  • 取决于QuickGraph(100%C#)。
  • 支持异步/等待(不错!)。

  • 演示版
    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研究人员-在服务背后发明科学”和“研究首页>产品组合>软件工具”:
    http://www.research.att.com/software_tools?fbid=NEk8_gxLLEc
    来源
    http://www.graphviz.org/Download_source.php
    他们还开源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
    该库允许用户在节点之间创建连接,这可能有点过头了。
    例子
    https://channel9.msdn.com/coding4fun/blog/Noodling-Network-Nodes-Diagraming-with-the-NetworkView-custom-WPF-control
    都是MVVM。
    选项11:Gephi-Open Graph Viz平台
    自由
    参见http://gephi.github.io/
    不是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图设计器
    自由
    并没有太多的绘图工具,但是它确实向您展示了如何在 Canvas 上移动,调整大小和旋转任何类型的对象。
    http://www.codeproject.com/Articles/22952/WPF-Diagram-Designer-Part-1
    选项15:MVVM图设计器
    自由
    而且,有人在MVVM中重新实现了这一点:并没有太多的制图工具,但是它确实向您展示了如何在 Canvas 上移动,调整大小和旋转任何类型的对象。
    http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer
    选项16:yWorks-绘图公司
    $$$
    https://www.yworks.com/en/products_yfiles_practicalinfo_gallery.html
    https://www.yworks.com/en/products_yfileswpf_about.html
    选项17:MindFusion
    $$$
    http://www.mindfusion.eu/features-wpfdiagram.html
    http://www.mindfusion.eu/
    选项18:Dot2WPF
    自由
    一个WPF控件,用于查看DOT图。
    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:拉萨尔
    $$$
    http://www.lassalle.com/
    选项22:动态数据显示
    http://dynamicdatadisplay.codeplex.com/
    选项23:Nevron
    $$$
    https://www.nevron.com/
    仅用于WinForms,但可以导入到WPF。但是,每个项目都无法进行模板化,这是WPF解决方案的一大优势。
    Google搜索条款
  • “工作流wpf绘图”
  • “wpf图形库”
  • “wpf状态机库”
  • 10-06 05:14
    查看更多