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

节点编辑器STNodeEditor快速入门,流程图编程

STNodeEditor

请添加图片描述

STNodeEditor 是一个轻量且功能强大的节点编辑器 纯GDI实现无任何依赖库仅仅100+Kb 使用方式非常简洁 提供了丰富的属性以及事件可以非常方便的完成节点之间数据的交互及通知 大量的虚函数可供开发者重写具有很高的自由性

Environment: VS2010(.NET 3.5)

STNodeEditor
STNodeEditor

项目主页 (Project home): DebugST.github.io/STNodeEditor (简体中文, English)

教程文档: DebugST.github.io/STNodeEditor/doc_cn.html

Tutorials and API: DebugST.github.io/STNodeEditor/doc_en.html

Mail: (2212233137@qq.com)

NuGet: https://www.nuget.org/packages/ST.Library.UI/

PM> Install-Package ST.Library.UI -Version 2.0.0

STNodeEditor

STNodeEditor

STNodeEditor拥有非常强大的功能 支持画布的移动和缩放 可以对节点位置以及连线进行锁定 连线时候会自动检测数据类型是否兼容 以及连线是否重复或者构成环形线路等问题

  • 拖动标题移动节点
  • 右击标题弹出菜单 (需要设置ContextMenuStrip)
  • 拖动连接点进行连线
  • 右击连线断开连接
  • 中键拖动移动画布 (若笔记本触摸板支持 可二指拖动)
  • CTRL+鼠标滚轮 缩放画布

注:节点Body区域进行的操作编辑器不会响应 因为在节点客户区内部的操作将被转换为节点的事件

因为作者将一个节点视为一个Form 而编辑器容器则为Desktop 开发者可以像开发WinForm程序一样去开发一个节点

STNodeHub

STNodeHub

STNodeHub是一个内置的节点 其主要作用分线 可以将一个输出分散到多个输入或多个输出集中到一个输入点上以避免重复布线 也可在节点布线复杂时用于绕线

HUB的输入输出默认为object类型 当一个连接被连入时候将会自动更换数据类型并增加新行

注:仅STNodeHub可以修改连接点的数据类型 因为相应字段被internal标记 而作为第三方扩展的STNode中是无法修改已添加连接点的数据类型的

STNodeTreeView

STNodeTreeView

STNodeTreeView可与STNodeEditor结合使用STNodeTreeView中的节点可直接拖拽进STNodeEditor中 并且提供预览和检索功能

STNodeTreeView的使用简单 无需像System.Windows.Forms.TreeView需要自行去构造树

通过使用STNodeAttribute标记继承的STNode可直接设置需要在STNodeTreeView中显示的路径 以及希望在STNodePropertyGrid中显示的信息

注:若希望节点能够在STNodeTreeView中显示 必须使用STNodeAttribute标记STNode子类

STNodePropertyGrid

STNodePropertyGrid

STNode中的属性被STNodePropertyAttribute标记则会在STNodePropertyGrid中显示 默认情况下支持int,float,double,bool,string,enum以及上述数据类型的Array 若希望显示的属性数据类型不被支持 可以对DescriptorType进行扩展重写 详细请参考DEMO

可以看到在STNodePropertyGrid的面板中可以显示节点的一些信息 作者认为提供给大家的是一套框架 大家可以基于这套框架打造一套自己的框架

而为框架编写节点的Coder应该有权利选择是否留下个人信息

STNodeEditorPannel

STNodeEditorPannel

STNodeEditorPannelSTNodeEditor STNodeTreeView STNodePropertyGrid的一套组合控件

可以通过拖动手柄控制布局

关于作者

  • Github: DebugST
  • Blog: Crystal_lz
  • Mail: (2212233137@qq.com)

相关文章:

  • 【USTC 计算机网络】第二章:应用层 - 应用层原理
  • postgresql 高版本pgsql备份在低版本pgsql中恢复失败,报错:“unsupported version”
  • 直线模组定位精度差的原因
  • Flume详解——介绍、部署与使用
  • 最长最短单词(信息学奥赛一本通-1143)
  • 深圳南柯电子|医疗设备EMC检测测试整改:保障患者安全的第一步
  • centos 安装pip时报错 Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64
  • cmd->set ngx_event_connections
  • axios 和 fetch异同点
  • 用户登出、修改密码或重置密码后,token的删除(flask)
  • 【AI News | 20250317】每日AI进展
  • ai本地化 部署常用Ollama软件
  • 【算法百题】专题六_模拟
  • 为什么需要强化学习?它解决了什么问题?
  • SwanLab邮件通知插件:训练完成收到邮件,掌握训练进度更及时
  • SQL Server性能优化实战
  • 人工智能实现电脑任务自动化的开源软件
  • 矩阵的逆的实际意义及牛顿法中的作用
  • debian11安装MongoDB
  • 【Agent】OpenManus-Flow-PlanningFlow设计分析
  • 比尔·盖茨:未来20年通过盖茨基金会捐出几乎全部财富,2045年底基金会停止运营
  • 司法部:加快研究制定行政执法监督条例,建立完善涉企行政执法监督长效机制
  • 李干杰走访各民主党派中央和全国工商联机关
  • 金融监管总局将推出8项增量政策:涉房地产金融、险资入市、稳外贸等
  • 欧盟公布终止进口俄能源计划,2027年为最后期限
  • 今晚上海地铁多条线路加开定点加班车,2号线运营至次日2时