wpf MindFusion 炫酷的图形表示,各种CFG,各种Tree 随手拈来

来源:互联网 发布:js中currenttarget 编辑:程序博客网 时间:2024/05/17 19:20

最近在做android app cfg的项目,最终是要输出一个cfg图的。这里,我搜罗了一番之后,选择了mindfusion的库,应该还有许多其他的库,这个库我觉得使用比较简单,也很直观,支持的语言也多,参考资料也比较丰富,基本参考官方给的文档,相关的效果都能够轻松的实现。

Mindfusion 帮助文档

库的官方网址:mindfusion


这里稍微总结一下在项目中用到的几个功能,其实这些功能在给的官方例子中也都有的,很方便,看看就知道怎么用了。


diagram.LinkHeadShape = ArrowHeads.PointerArrow;                  //设置连线箭头的类型, 这里设置的是程序流图箭头。GlassEffect effect = new GlassEffect();                                            //设置结点的玻璃效果 effect.Type = GlassEffectType.Type4;          effect.GlowColor = Colors.Black; diagram.NodeEffects.Add(effect);var diagramNode = diagram.Factory.CreateShapeNode(bounds);nodeMap[node.Attribute("id").Value] = diagramNode;diagramNode.Text = node.Attribute("name").Value;                //--调整结点大小以显示全部内容,必须放在设置了内容值之后。有的时候结点的内容比较多,设置单一的bound放不下,fit就可以搞定了。diagramNode.ResizeToFitText(FitSize.KeepRatio);diagramNode.TextAlignment = TextAlignment.Left;ShapeNode s2 = (ShapeNode)nodeMap["0"];                                        //起点位置是绿色s2.Brush = Brushes.LightGreen;//连接两个结点DiagramLink dl = diagram.Factory.CreateDiagramLink(nodeMap[link.Attribute("origin").Value],nodeMap[link.Attribute("target").Value]  );dl.AddLabel(link.Attribute("label").Value + "--" + logShow);                     //设置link的颜色//这是非常方便的一个功能,自动布局结点。var layout = new MindFusion.Diagramming.Wpf.Layout.DecisionLayout();//这种模式,使得布局的结点可以是标准的控制流图形式。 layout.StartNode = nodeMap["0"];layout.Arrange(diagram);                                                                                //自动布局结点

上一张图:



如果有相关需求的小伙伴们,可以快快行动哟~大笑

0 0