彩票走势图

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

翻译|其它|编辑:吴园园|2019-08-09 10:31:59.720|阅读 345 次

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

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

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

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

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

答:版本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字符串吗?

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

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

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

问:是否可以将图表转换为位图文件?

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

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

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

问:如何将图表导出到emf文件?

答:使用以下代码:

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命名空间中定义。

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

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

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

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

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

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

问答持续更新中>>>

想要购买MindFusion.Diagramming for WinForms正版授权的朋友欢迎~

image.png


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP