STNodeEditor
项目地址 开发文档 类库下载

或许你未曾接触过节点编辑 但节点编辑的影子越来越多 尤其是在影视相关的一些设计类软件当中 Blender,C4D,Houdini,Davinci 等

STNodeEditor的使用方式非常简洁 提供了丰富的属性以及事件 可以非常方便的完成节点之间数据的交互及通知 大量的重载函数供开发者使用具有很高的自由性
此控件采用MIT开源协议开源 使开发者能够拥有更大的自由度更少的限制

节点编辑最大的好处就是可视化操作 将单一的功能点封装到节点之中 让用户通过节点布线来组合自己需要的逻辑 让整个流程可视化 而不是将你程序的整个执行流程固化在你的程序之中 当然在这之前你需要定义好节点的数据类型 因为数据类型无法兼容是不允许连线的 通常情况下同颜色的连接点表示数据类型相同

另一个好处 让开发者只需要注重单一的功能点开发 使得功能与功能之间的耦合度降低 开发者在节点中开发完成需要的功能 无需知道应该把数据交给谁或者怎么去传递数据 只需要将你的结果数据打包给你需要输出的选项点 无论节点间布线多么的复杂 节点编辑器会自动完成数据的投递过程

- 移动画布
  - 鼠标中键拖动
  - MacBook可使用二指拖动触控板
- 缩放画布
  - 按下Control + 鼠标滚轮
- 移动节点
  - 鼠标左键按下节点标题拖动
- 删除连线
  - 悬停连线 鼠标右键

方形为多连接选项 圆形为单连接选项

自定义选项颜色 应当同一颜色为同一数据类型 不同数据类型无法建立连线

内置HUB集线器节点 方便布线

强大的UI自定义能力 可快速帮助开发者定义出需要的节点界面

提供的STNodeControl基类与System.Windows.Forms.Control拥有差不多的接口 可使开发者能够像自定义WinForm控件一样定义节点的控件

即便用户不进行自定义 选项默认将按照一行一行排列

基类STNode为抽象类 不可实例化 需开发者继承向其添加选项 并重载需要的函数进行自定义样式

具体细节参考项目中的Demo或查看开发文档

.Net版本: | .Net Framework 3.5
VS版本: | Visual Studio 2010

2021-01-06