视觉/图像重磅干货,第一时间送达! ![]() 纯GDI+绘制 使用方式非常简洁 提供了丰富的属性以及事件 可以非常方便的完成节点之间数据的交互及通知 大量的虚函数供开发者重写具有很高的自由性。 目前已经进入3.0的开发,对于快速式开发很好用。 项目主页 (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./packages/ST.Library.UI/ PM> Install-Package ST.Library.UI -Version 2.0.0 像流程图一样使用你的功能你是否有设想过流程图不再是流程图 而是直接可以执行的? 在一些开发过程中我们可能会为整个程序设计一个流程图 上面包含了我们存在的功能模块以及执行流程 然后由开发者逐一实现 但是这样会带来一些问题 程序的执行流程可能会被硬编码到程序中去 如果突然有一天可能需要改变执行顺序或者添加删除一个执行模块 可能需要开发者对代码重新编辑然后编译 而且各个功能模块之间的调用也需要开发者进行编码调度 增加开发成本 等一系列的问题 而
如何使用它?STNodeEditor的使用非常简单 你几乎可以没有任何学习成本的去使用的 当然最重要的一点就是 你需要知道如何去创建一个节点 你可以像创建一个Form一样去创建一个Node using ST.Library.UI.NodeEditor; 可以看到它的使用方式和
注意:在目前的版本中(2.0) STNodeEditor仅仅提供了STNodeControl基类 并未提供任何一个可用控件 当然在附随的Demo工程中包含了部分示例演示如何自定义一个控件 由于这属于自定义控件的范畴 所以演示并未太多 若需了解关于自定义控件如何开发可参考作者:自定义控件开发 系列文章 当然在后续的版本中 作者将提供部分常用控件 虽说作者想把使用方式往WinForm上靠 单仅仅是把它当作WinForm使用并不是作者的初衷 上面的演示仅仅是为了让大家感到亲切感 毕竟 public class MyNode : STNode { protected override void OnCreate() {//等同 [public MyNode(){}] base.OnCreate(); this.Title = 'TestNode'; //可以得到添加的索引位置 int nIndex = this.InputOptions.Add(new STNodeOption('IN_1', typeof(string), false)); //可以得到添加的 STNodeOption STNodeOption op = this.InputOptions.Add('IN_2', typeof(int), true); this.OutputOptions.Add('OUT', typeof(string), false); } //当所有者发生改变(即:在NodeEditor中被添加或移除) //应当像容器提交自己拥有数据类型的连接点 所期望显示的颜色 //颜色主要用于区分不同的数据类型 protected override void OnOwnerChanged() { base.OnOwnerChanged(); if (this.Owner == null) return; this.Owner.SetTypeColor(typeof(string), Color.Yellow); //当前容器中已有的颜色会被替换 this.Owner.SetTypeColor(typeof(int), Color.DodgerBlue, true); //下面的代码将忽略容器中已有的颜色 //this.SetOptionDotColor(op, Color.Red); //无需在OnOwnerChanged()中设置 } } 通过上面的案例你可以看到
public class MyNode : STNode { ![]() https://github.com/DebugST/STNodeEdito
|
|