Diagramming for WinForms 教程一(读取图元数据)
1,新建“Visual c#” Windows窗体应用程序。
2,从“工具箱”的“Diagramming”选项卡下,托出“DiagramView”控件到Form1上。控件的"Name"属性设置为“mDiagram”,“Dock”属性设置为"Fill"。
3,在项目树的“引用“上右键选择”添加引用“,在弹出的”添加引用“面板中的”浏览“选项卡下,选择控件安装路径下的”MindFusion.Common.dll“、”MindFusion.Diagramming.dll“、”MindFusion.Common.WinForms.dll“。一般路径为”C:\Program Files (x86)\MindFusion\MindFusion.Diagramming for WinForms\CLR4 (.NET 4.0 and .NET 4.5)“。
4,在项目树上选择”添加/新建项/XML文件“,并重命名为”SampleGraph.xml“。
5,复制以下代码到”SampleGraph.xml“文件中。
<?xml version="1.0" encoding="utf-8" ?>
<Graph>
<Nodes>
<Node id="0" name="start" />
<Node id="1" name="activity 1" />
<Node id="2" name="task 1" />
<Node id="3" name="task 2" />
<Node id="4" name="activity 2" />
<Node id="5" name="task 3" />
<Node id="6" name="task 4" />
<Node id="7" name="activity 3" />
<Node id="8" name="task 5" />
<Node id="9" name="task 6" />
<Node id="10" name="end" />
</Nodes>
<Links>
<Link origin="0" target="1" />
<Link origin="1" target="2" />
<Link origin="1" target="3" />
<Link origin="2" target="4" />
<Link origin="3" target="4" />
<Link origin="4" target="5" />
<Link origin="4" target="6" />
<Link origin="5" target="10" />
<Link origin="6" target="10" />
<Link origin="0" target="7" />
<Link origin="7" target="8" />
<Link origin="8" target="9" />
<Link origin="1" target="9" />
<Link origin="9" target="10" />
</Links>
</Graph>
6,重载Form1的Load事件
private void Form1_Load(object sender, EventArgs e)
{ }
7,在load事件代码中,添加以下变量。"nodeMap"是图中节点的标识符,"bounds"包含了默认的节点尺寸。
Dictionary<string, DiagramNode> nodeMap = new Dictionary<string, DiagramNode>();
RectangleF bounds = new RectangleF(0, 0, 18, 6);
8,使用XML DOM API 来读取XML文档
XmlDocument document = new XmlDocument();
document.Load("SampleGraph.xml");
9,通过”Factory“类下的”CreateShapeNode“方法来导入图形节点元素保存到相应的"ShapeNode"对象中。
XmlNodeList nodes = document.SelectNodes("/Graph/Nodes/Node");
foreach (XmlElement node in nodes)
{
ShapeNode diagramNode = mDiagram.Diagram.Factory.CreateShapeNode(bounds);
nodeMap[node.GetAttribute("id")] = diagramNode;
diagramNode.Text = node.GetAttribute("name");
}
10,导入DiagramLink对象
XmlNodeList links = document.SelectNodes("/Graph/Links/Link");
foreach (XmlElement link in links)
{
mDiagram.Diagram.Factory.CreateDiagramLink(
nodeMap[link.GetAttribute("origin")],
nodeMap[link.GetAttribute("target")]);
}
11,使用LayeredLayout类来安排流程图
LayeredLayout layout = new LayeredLayout();
layout.LayerDistance = ;
layout.Arrange(mDiagram.Diagram);
12,编译执行

11,编译器请在"Form1.cs"代码头添加
using MindFusion.Diagramming;
using MindFusion.Diagramming.Layout;
using System.Xml;
12,如果运行时提示找不到"SampleGraph.xml"文件,请在项目路径下将SampleGraph.xml拷贝到bin\Debug文件夹中。
Diagramming for WinForms 教程一(读取图元数据)的更多相关文章
- 【SQLite】教程09-VBA读取SQLite数据之ODBC,及中文乱码问题
VBA使用ODBC Driver for SQLite读SQLite 如下图有这么一个SQlite数据库,我们要读取它 需要先安装ODBC,可以从这里下载: SQLite 3 ODBC Driver ...
- [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序读取相关数据
这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第七篇:为ASP.NET MVC应用程序 ...
- 为ASP.NET MVC应用程序读取相关数据
为ASP.NET MVC应用程序读取相关数据 2014-05-08 18:24 by Bce, 299 阅读, 0 评论, 收藏, 编辑 这是微软官方教程Getting Started with En ...
- ng1 http 读取json数据
在前端开发过程中,有时后端还没开发出接口,需要经常自己构造获取本地mock数据. AngularJS XMLHttpRequest $http 是 AngularJS 中的一个核心服务,用于读取远程服 ...
- Pandas之:Pandas高级教程以铁达尼号真实数据为例
Pandas之:Pandas高级教程以铁达尼号真实数据为例 目录 简介 读写文件 DF的选择 选择列数据 选择行数据 同时选择行和列 使用plots作图 使用现有的列创建新的列 进行统计 DF重组 简 ...
- CRL快速开发框架系列教程九(导入/导出数据)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- java的poi技术读取Excel数据到MySQL
这篇blog是介绍java中的poi技术读取Excel数据,然后保存到MySQL数据中. 你也可以在 : java的poi技术读取和导入Excel了解到写入Excel的方法信息 使用JXL技术可以在 ...
- Hive读取外表数据时跳过文件行首和行尾
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 有时候用hive读取外表数据时,比如csv这种类型的,需要跳过行首或者行尾一些和数据无关的或者自 ...
- 读取数据库数据,并将数据整合成3D饼图在jsp中显示
首先我将生成饼图的方法独立写成一个PieChar.java类,详细代码如下:(数据库需要自己建,如有需要的话) import java.io.IOException; import java.sql. ...
随机推荐
- MapReduce介绍
一.MapReduce模型 1.MapReduce是大规模数据(TB级)计算的利器,Map和Reduce是它的主要思想,来源于函数式编程语言. 2.Map负责将数据打散,Reduce负责对数据进行聚集 ...
- Asm.Def点大兵
syzoj上的题,收货很多,orz天天学长 原题: Asm.Def奉命组建一支m人的特种作战小队前往圣迭戈.他有n名候选人,可以在其中任意挑选.由于小队中每个人都有独特的作用,所以次序不同的两种选法被 ...
- Solidworks安装界面是英文的解决办法
[问题描述] 一样的安装文件,同事之前安装界面就是中文的,安装好以后软件也是中文的. 这几天系统挂了,重装系统后就发现安装界面是英文的,安装好以后也是英文. win7系统,位数不详,solidwork ...
- 037. asp.netWeb用户控件之五使用用户控件实现文件上传功能
fileUpload.ascx代码: <%@ Control Language="C#" AutoEventWireup="true" CodeFile= ...
- Joint Deep Learning for Pedestrian Detection笔记
1.结构图 Introduction Feature extraction, deformation handling, occlusion handling, and classification ...
- 【MySQL】优化—工欲善其事,必先利其器之EXPLAIN
接触MySQL已经有一段时间了,了解如何优化它也迫在眉睫了,话说工欲善其事,必先利其器.最近我就打算了解下几个优化MySQL中经常用到的工具.今天就简单介绍下EXPLAIN. 环境准备 Explain ...
- 【学+原】CSS3的2D动画 ——仿NOMOS手表
看CSS3妙味课堂中有一课是介绍如何做钟表界面,然后三根针都能随着时间转动,然后自己在那个简易的版本上做了一些进一部改进. 最关键的知识点应该是transform-origin这个样式,要选对旋转的中 ...
- 全面了解 Linux 服务器 - 1. 查看 Linux 服务器的 CPU 详细情况
1. 查看 Linux 服务器的 CPU 详细情况 判断依据: 具有相同的 core id 的 CPU 是同意个 core 超线程. 具有相同的 physical id 的 CPU 是同一个 CPU ...
- ThinkPHP 3.2.3集成uploadify上传控件
uploadify控件有一个坑爹的问题,就是文件上传时会session丢失,官方解释http://www.uploadify.com/documentation/uploadify/using-ses ...
- 继承自NSObject的不常用又很有用的函数(2)
函数调用 Objective-C是一门动态语言,一个函数是由一个selector(SEL),和一个implement(IML)组成的.Selector相当于门牌号,而Implement才是真正的住户( ...