MindFusion.Diagramming for WinForms常见问题集锦(四):图形布局

翻译|其它|编辑:吴园园|2019-08-15 15:27:59.870|阅读 42 次

概述:MindFusion.Diagramming for WinForms是一款能够帮助你轻松创建流程图和示意图的.NET控件,可以自定义设计样式和图表框颜色。本文整理了用户常见图形布局的问题,以及其他问题,希望对您有所帮助。

相关链接:

本文整理了用户在使用MindFusion.Diagramming for WinForms经常遇见的图形布局的问题,以及其他问题,希望对您有所帮助~

点击下载MindFusion.Diagramming for WinForms最新试用版

问:应用TreeMapLayout后,我的树形图不完全可见,需要滚动。我可以让它适合图表的可见部分吗?

答:树形图是在通过TreeMapLayout.LayoutArea属性指定的区域内生成的,或者是在图中。如果未设置前者,则生成树形图。要在图的可见部分内排列节点,请将这些属性中的任何一个设置为DiagramView.ClientToDoc(DiagramView.ClientRectangle)的结果。

问:您宣传了两种流程图布局算法,我应该使用哪种算法?

答: FlowchartLayout用于安排源代码流程图,其中代码结构(如循环和分支)可以相互嵌套。DecisionLayout专为包含决策和活动框的简单流程图而设计,每个节点最多有三个传出链接。有关演示这两种流程图的示例,请参阅随组件一起安装的JavaScript和DecisionLayout示例项目。

问: FlowChart.NET是否有任何ASP.NET示例?我想将图像生成集成到网页中。

答:是的,有一些WebApp示例项目,可在Samples \ C#和Samples \ VB.NET文件夹中找到。该示例使用ASP.NET IMG控件并将其URL设置为动态生成图表图像的网页。该网页创建一个Diagram实例,加载一个图表,并使用CreateImage方法将图表导出到jpeg。它还将响应类型设置为image / jpeg,最后将图像字节发送到浏览器。

问:我可以在服务器上使用MindFusion.Diagramming.dll,在客户端上使用JDiagram applet来实现Web图解解决方案吗?

答:这就是我们的NetDiagram控件基本上做的事情。如果您希望自己实现它,请查看运行其中一个NetDiagram示例项目时生成的HTML和JavaScript,例如OrgBrowser。图表数据在那里作为压缩XML数据传输,使用.NET 2和Java提供的ZipStream类。

问:我可以使用WebApp示例方法创建实体关系图吗?

答:您可以使用WebApp示例中的TableNodes替换ShapeNodes以创建数据库图表。

问:使用WebApp方法在网页上显示图表时,是否可以检测展开/折叠按钮点击?

答:用于生成客户端图像映射的HtmlBuilder类具有ExpandBtnHyperlink属性 - 使用它来处理服务器上的单击(通过设置单击节点的Expanded属性)并将新图表图像返回给浏览器。

问:当图中有大背景形状时,链接自动路由似乎不起作用。我怎样才能解决这个问题?

答:将Obstacle属性设置为false:

backgroundShape.Obstacle = false

问:是否可以防止自动路由不移动链接的原点或目标锚点。链接保持在用户设置的锚点是至关重要的。

答:设置Anchoring to Keep:

 Diagram.RoutingOptions.Anchoring = Keep

问:是否可以保留工作流程的更改历史记录并比较两个版本?

答:如果您需要显示同一文档的两个修订版之间的差异,您可以实现更改日志并将差异显示为在某些日期之间记录的日志条目列表。

启用Diagram.UndoManager属性和UndoManager.UndoEnabled属性并处理Diagram.ActionRecorded事件。在事件处理程序中,根据要记录的命令创建日志条目。为每条记录添加时间戳,以便您可以将文档修订日期与日志记录时间进行比较。您可以使日志条目的集合可序列化并将其存储在Diagram.Tag中。

另一种可能性是为每个DiagramItem.Tag分配唯一的ID。然后,您可以通过检查两个版本中是否存在具有某个ID的项目来比较文档修订,因此您知道是否已添加或删除了一个DiagramItem。如果两个文档中都存在具有某些ID的项目,则可以进一步比较其属性值,例如“文本”,“边界”等。

问:如何将自定义数据与图表中的项目(节点和链接)相关联?

答:您可以创建自己的派生自ShapeNode的类,并为其添加ID属性。要让用户创建您的类型的项目,请将view.Behavior设置为Custom,将view.CustomNodeType设置为typeof(your_node_class)。有关如何在FlowChart.NET中使用自定义类型的示例,请检查IconNodes示例项目。

更简单的解决方案是将id分配给项目的Tag属性。另外一个“好处”是您可以使用Diagram的FindNode方法按标签/ ID搜索节点。

问:在哪里可以获得FlowChart.NET的液压,气动和电气符号库?

答:目前我们不提供此类符号。相反,您可以创建自己的Shape定义,其Image属性设置为表示相应符号的位图或元文件。例如,检查安装在Flowchart.NET Samples文件夹中的符号库示例“LogicGates”。

问答持续更新中>>>

MindFusion.Diagramming for WinForms现已加入在线订购,点击此处查看价格~

想要购买MindFusion.Diagramming for WinForms正版授权的朋友欢迎咨询在线客服哦~

更多精彩内容,敬请关注下方的微信公众号,及时获取产品最新资讯▼▼▼

MindFusion.Diagramming for WinForms常见问题集锦(四):图形布局



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果

文章转载自:MindFusion.Diagramming for WinForms https://www.mindfusion.eu/faq.html

登录 慧都网发表评论


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关厂商
相关产品
MindFusion.Diagramming for WinForms

FlowChart.NET是一款能够帮助你轻松创建流程图和示意图的.NET控件,可以自定义设计样式和图表框颜色。

在线客服 在线QQ 电话咨询
400-700-1020
反馈
在线客服系统
live chat