MindFusion.Diagramming for WinForms常见问题集锦(二):图序列化和导出

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

MindFusion.Diagramming for WinForms最新试用版

本文整理了用户常见图序列化和导出问题,希望对您有所帮助~

问:在v5中的Diagram.LoadFromXml中是否已经改进了XML反序列化速度/strong>

答:版本5使用DOM API和版本4使用线性序列化,因此在V5中XML序列化速度稍慢,但您会注意到它只有大量项目(数千个)。此外,版本5序列化保存了共享节点映像的单个副本,因此使用映像时新版本中的XML序列化速度要快得多。我们已经完成了400个节点和400个链接的一些测试:

  • V4.3.1,没有图像:文件加载一秒钟

  • V5.0,没有图像:文件加载一秒钟

  • V4.3.1,包含10张图像:文件加载12秒

  • V5.0,有10个图像:文件加载2秒

上次测试的每个图像都分配给40个节点。在这种情况下,版本5中的速度更好,因为共享图像的字节被编码并保存一次; 而版本4为每个节点保存一个单独的副本,然后在加载时解码400个图像副本。

问: Diagram.LoadFromXml可以读取使用以前版本的XmlWriter类创建的XML字符串吗/strong>

答:旧的XML格式仍然支持阅读; 实际上,您必须使用LoadFromString方法来加载XML字符串。

问:在v5中,获取文档的LoadFromXml重载与获取字符串的重载之间是否存在性能差异/strong>

答:后者在从字符串内容创建XmlDocument对象后调用前者。

问:是否可以将图表转换为位图文件/strong>

答:调用Diagram.CreateImage方法,然后调用Image.Save方法。

问:我正在尝试创建一个自定义拖放图标,以便在屏幕上拖动形状时显示。有没有办法将flowChart形状动态转换为图像/strong>

答:使用Graphics.FromImage创建图形对象。要在Graphics实例上绘制形状,请创建临时节点,设置其形状,然后调用ShapeNode.Draw方法。Flowcharter示例项目中显示了类似的方法,其中列表框中的图标表示Flowchart.NET形状。

问:如何将图表导出到emf文件/strong>

答:使用以下代码:

using (FileStream stream = new FileStream(
@"C:temp.wmf", FileMode.Create))
{
Graphics g = CreateGraphics();
IntPtr hDC = g.GetHdc();
Metafile metafile = new Metafile(stream, hDC);
g.ReleaseHdc(hDC);
g.Dispose(); IGraphics gMeta = new GdiGraphics(
Graphics.FromImage(metafile));

diagram.Draw(gMeta, new RenderOptions(),
diagram.Bounds, false);

gMeta.Dispose();

metafile.Dispose();
}

IGraphics和GdiGraphics在MindFusion.Drawing命名空间中定义。

问:我可以将选择的项目保存到文件中吗/strong>

答:使用CopySelection和PasteSelection方法将所选项目复制到第二个Diagram实例,并调用Diagram.SaveToFile方法将它们保存到文件中。

问: FlowChart.NET可以读取我的数据库模式并为其生成ER图吗/strong>

答:不可以。您应该通过ADO.NET阅读架构,并使用CreateTableNode和CreateDiagramLink方法以编程方式生成图表。

问:我有一个SQL表,其中包含一些包含多列中的状态和连接信息的条目。我已经导入了节点。现在我想组织连接。你有一些提示我应该选择哪种方式吗/strong>

答:要创建连接,请在创建节点时将数据库中的节点ID分配给ShapeNode.Tag属性。在链接记录上运行第二个循环,对于节点的每个相关节点ID,调用CreateDiagramLink(node,Diagram.FindNode(relatedID))。如果您已使用标签存储其他信息,请将关系保存在Hashtable中。要排列图表,请使用一些布局算法类,例如LayeredLayout。

问答持续更新中>>>

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

image.png

标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年7月6日
下一篇 2019年7月6日

相关推荐

发表回复

登录后才能评论