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

最近在做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);                                                                                //自动布局结点

上一张图:



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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值