您的位置:首页 > 其它

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

2014-08-25 14:38 288 查看
最近在做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);                                                                                //自动布局结点


上一张图:



如果有相关需求的小伙伴们,可以快快行动哟~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐