当前位置: 首页 > news >正文

C#使用MindFusion.Diagramming框架绘制流程图(1):基础类型

MindFusion.Diagramming框架

在C#中使用MindFusion.Diagramming.dll库来创建图表和图形界面,可以让你构建出丰富和交互式的图形应用。MindFusion.Diagramming 是一个强大的库,支持创建各种类型的图表,例如流程图、网络图、组织结构图等。

MindFusion.Diagramming框架是基于微软的GDI+框架(System.Drawing)基础上二次开发而成的图表框架

图Diagram(Graph)是由节点Node(顶点,环节)和连线Line组成

关键类

①图表MindFusion.Diagramming.Diagram

public class Diagram : DiagramBase, IPersists, IItemFactory

主要属性:

public DiagramItemCollection Items { get; } //获取图表中的所有对象,包含节点Nodes和连线Links

public DiagramNodeCollection Nodes { get; }//获取图表中的所有节点Nodes

public DiagramLinkCollection Links { get; }//获取图中的所有连线Links

public MeasureUnit MeasureUnit { get; set; }//获取或设置用于此图中逻辑坐标的度量单位(默认为毫米mm)。

②节点[顶点,环节]MindFusion.Diagramming.DiagramNode

public abstract class DiagramNode : DiagramItem, IPersists

主要属性:

public DiagramLinkCollection IncomingLinks { get; }

//获取指向该节点的连线[链接]集合[输入]

public DiagramLinkCollection OutgoingLinks { get; }

//获取从此节点开始的链接集合。[输出]

③节点连线MindFusion.Diagramming.DiagramLink

public class DiagramLink : DiagramItem, IPersists, InplaceEditable

主要属性:

public DiagramNode Origin { get; set; }//获取或设置链接的源节点。

public DiagramNode Destination { get; set; }//获取或设置此链接的目标节点。

public LinkShape Shape { get; set; }

//获取或设置链接段的类型以及它们之间的相对位置。

④形状节点MindFusion.Diagramming.ShapeNode

public class ShapeNode : DiagramNode, IPersists, InplaceEditable

ShapeNode实例是表示几何形状的图表节点。

主要属性:

public Image Image { get; set; } //图片

public string Text { get; set; } //文本

public Shape Shape { get; set; } //几何形状

public override Font Font { get; set; }//字体

⑤图表元素项MindFusion.Diagramming.DiagramItem

public abstract class DiagramItem : IPersists, IDisposable

表示图表文档中的一个项目。所有表示图表元素的类都派生自DiagramItem。

主要属性

public object Id { get; set; }//自定义标识符

public object Tag { get; set; }//用户自定义数据

public float Weight { get; set; }//获取或设置布局和路径查找算法中使用的权重值。

public string ToolTip { get; set; }//鼠标悬浮时短文本信息

⑥矢量图形节点MindFusion.Diagramming.SvgNode

public class SvgNode : ShapeNode

SVG(Scalable Vector Graphics)可缩放矢量图形,svg基于xml语法.SVG支持三种类型的图形对象:矢量图形形状(例如,由直线和曲线组成的路径), 图像和文本。可以对图形对象进行分组、样式化转化和合成。 功能集包括嵌套变换、裁剪路径、Alpha蒙版、滤镜效果和模板对象。

主要属性:

public MindFusion.Svg.SvgContent Content { get; set; }//即XmlElement

⑦表格节点MindFusion.Diagramming.TableNode

public class TableNode : DiagramNode, IPersists, InplaceEditable

表格节点可以包含多个单元格,并且可以通过其行与其他节点相关联。表格就是一种行列式

主要属性:

public RowCollection Rows { get; }

public ColumnCollection Columns { get; }

public Cell this[int col, int row] { get; }

⑧树图节点MindFusion.Diagramming.TreeViewNode

public class TreeViewNode : DiagramNode, InplaceEditable

表示可以绘制层次数据的节点。

主要属性:

public IList<TreeViewItem> RootItems { get; }

⑨虚拟节点MindFusion.Diagramming.DummyNode

public class DummyNode : DiagramNode

表示用于断开连接的链接的虚拟节点

记录拖放drag节点MindFusion.Diagramming.DraggedNode

 public class DraggedNode

用于在拖放过程中保存DiagramNode实例的类。它用于更容易地检测拖动的内容,如DragEventArgs.Data.GetData()

图表界面集合MindFusion.Diagramming.DiagramDocument

public class DiagramDocument : DiagramBase

表示图表页面的集合

主要属性:

public ObservableCollection<DiagramPage> Pages { get; }

public void SaveToXml(XmlDocument document)

public void LoadFromXml(XmlDocument document);

元素模板MindFusion.Diagramming.ElementTemplate

public abstract class ElementTemplate : IPersists, ICloneable

表示形状定义的元素。这是特定元素类型的父类,如ArcTemplate、LineTemplate和BezierTemplate。

路径MindFusion.Diagramming.Path

public sealed class Path

表示连接的DiagramNode和DiagramLink元素的序列

主要属性:

public DiagramNodeCollection Nodes  { get; }

public DiagramLinkCollection Links  { get; }

public DiagramItemCollection Items { get; }

几何形状MindFusion.Diagramming.Shape

public class Shape : IPersists, ICloneable

主要属性:

public Image Image { get; set; }

public string Id { get; set; }

public string DisplayName { get; set; }

public ElementTemplate[] Outline { get; set; }

形状集合枚举MindFusion.Diagramming.Shapes

返回各种几何形状 如:Shapes.Rectangle

    //     Provides alternative method of access to the MindFusion.Diagramming predefined
    //     shapes, that allows code completion and Intellisense support, which is not available
    //     when using Shape.FromId(). The accessor properties are generating using the following
    //     code: TextWriter writer = new StreamWriter(@"D:\shapes.txt"); foreach (Shape
    //     shape in Shape.Shapes) { writer.WriteLine("static public Shape " + shape.Id);
    //     writer.WriteLine("{"); writer.WriteLine("\tget { return Shape.FromId(\"" + shape.Id
    //     + "\"); }"); writer.WriteLine("}"); writer.WriteLine(); writer.Flush(); }

http://www.lqws.cn/news/171433.html

相关文章:

  • Chrome安装代理插件ZeroOmega(保姆级别)
  • 如何理解机器人课程的技术壁垒~壁垒和赚钱是两件不同的事情
  • Chrome书签的导出与导入:步骤图
  • 浏览器工作原理01 [#]Chrome架构:仅仅打开了1个页面,为什么有4个进程
  • Chrome 浏览器前端与客户端双向通信实战
  • Flink在B站的大规模云原生实践
  • 学习STC51单片机29(芯片为STC89C52RCRC)
  • 【python深度学习】Day 46 通道注意力(SE注意力)
  • Verilog编程技巧01——如何编写三段式状态机
  • caliper中的测试文件写法及其注意事项
  • 【Java后端基础 005】ThreadLocal-线程数据共享和安全
  • 江科大读写内部flash到hal库实现
  • 【Go语言基础【5】】Go module概述:项目与依赖管理
  • Tesseract配置参数详解及适用场景(PyTesseract进行OCR)
  • Spring Boot消息系统开发指南
  • 语音合成之十九 为什么对数行列式的值可以作为Flow-based模型loss?
  • 三种读写传统xls格式文件开源库libxls、xlslib、BasicExcel的比较
  • leetcode 2434. 使用机器人打印字典序最小的字符串 中等
  • 自动化提示生成框架(AutoPrompt)
  • 零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程
  • Vue:Form正则校验
  • React - 组件通信
  • 【React】React 18 并发特性
  • 视频的分片上传,断点上传
  • Visual Studio问题记录
  • React---day10
  • 跨平台游戏引擎 Axmol-2.6.1 发布
  • keysight是德科技N9923A网络分析仪
  • 华为云学堂-云原生开发者认证课程列表
  • 云原生玩法三问:构建自定义开发环境