惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
小众软件
小众软件
S
SegmentFault 最新的问题
人人都是产品经理
人人都是产品经理
博客园 - 【当耐特】
博客园 - 三生石上(FineUI控件)
C
Check Point Blog
S
Schneier on Security
Microsoft Azure Blog
Microsoft Azure Blog
N
Netflix TechBlog - Medium
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
罗磊的独立博客
有赞技术团队
有赞技术团队
V
V2EX
Y
Y Combinator Blog
博客园 - 叶小钗
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
F
Fortinet All Blogs
W
WeLiveSecurity
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Stack Overflow Blog
Stack Overflow Blog
The Cloudflare Blog
S
Security @ Cisco Blogs
TaoSecurity Blog
TaoSecurity Blog
MyScale Blog
MyScale Blog
Hugging Face - Blog
Hugging Face - Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
www.infosecurity-magazine.com
www.infosecurity-magazine.com
PCI Perspectives
PCI Perspectives
H
Heimdal Security Blog
Schneier on Security
Schneier on Security
Security Latest
Security Latest
AWS News Blog
AWS News Blog
月光博客
月光博客
Security Archives - TechRepublic
Security Archives - TechRepublic
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
博客园 - Franky
Cisco Talos Blog
Cisco Talos Blog
T
Threat Research - Cisco Blogs
M
MIT News - Artificial intelligence
T
Troy Hunt's Blog
N
News and Events Feed by Topic
Cloudbric
Cloudbric
Scott Helme
Scott Helme
云风的 BLOG
云风的 BLOG
Attack and Defense Labs
Attack and Defense Labs

博客园 - lzhdim

JavaScript 中的原型与继承 1分钟查清局域网所有IP 20260714 - 个人小作品更新 WorkBuddy 完整教程手册 专为AI而生的企业级QLC SSD!长江存储PE501 61.44TB评测:超过1PB的写入测试 32GB显存才是第一生产力!英特尔锐炫 Pro B70评测:中小企业AI降本神器 JavaScript中的this关键字 C#开发的PopoSaver泡泡屏保应用 - 开源研究系列文章 - 个人小作品 6天不间断测试告诉你到底有多省电!米家空调巨省电大1.5匹评测:制冷峰值功率不超过500W 三倍双摄加持 + D-Log 2 曲线!大疆DJI OSMO Pocket 4P全面评测:补齐短板,化身口袋电影机 晶栈4.0闪存立威!长江存储致态TiPro9000 2TB SSD评测:缓外写入超4GB/s独一档 C# 多线程同步机制详解:原理、使用与性能对比 JavaScript作用域与闭包讲解 最受欢迎的 10 大免费 AI 工具 六种AI生意,从月入一万到月入十万 5个国产大模型实测对比2026:DeepSeek、Kimi、豆包、通义、智谱哪个好用 豆包、元宝、千问、Kimi、DeepSeek,这么多AI软件,到底该用哪个? 微软免费开源了一个 Linux 操作系统,没错!是微软出品 一次看懂5种咖啡冲煮方式:意式、手冲、法压、冷萃、摩卡壶到底有什么区别 120个 实用CSS 技巧汇总合集 JavaScript运算符与表达式详解 C#开发的ScreenSaver屏保应用 - 开源研究系列文章 - 个人小作品 WinForm 中跨线程操作 UI 的解决方案 JavaScript变量与数据类型详解 苹果良心!iOS 27适配设备公布:30款机型 7年前的iPhone 11还能升级 C++图形用户界面开发入门 10个不该免费的GitHub神级项目 JavaScript语言全面概述:从历史到现代实践 一张图看懂常见咖啡 C盘空间多出来4GB:谷歌服软 Chrome本地AI大模型可禁用、删除了 96GB显存运行230B大模型!七彩虹灵创K16笔记本评测:160W性能释放 AMD锐龙AI Max+ 395加持全能移动AI工作站 AI PC最强存储搭档!雷克沙NM1090 PRO 8TB固态评测:14400MB/s满速不缩水 C#已经不是当年的C#了——我用它写了个微秒级数据库引擎 EasyTool:轻量全能的 .NET 工具类库 SQL 入门 17:MySQL 数据类型:从字符串到 JSON 的全面解析 SQL 入门 16:SQL 事务隔离级别与死锁解析(易懂) 原相3955XM+TL3228主控!小米电竞鼠标2全面评测:原生双8K究竟有多强 PCIe 4.0火力全开:闪迪奥丁马仕GX 7100 NVMe SSD上手 超乎预料的千元级电竞主板!七彩虹iGame B850M Ultra-OC V14主板评测 SQL 入门 15:SQL 事务:从 ACID 到四种常见的并发问题 名人 - 我的闪存 C#性能优化技巧 SQL 入门 14:SQL 触发器与事件:自动化数据处理 38个实用的JavaScript 技巧 Masuit.Tools:这个 C# 工具库 SQL 入门 13:SQL 存储过程与函数:封装逻辑与参数处理 49个 JavaScript 代码快捷技巧,让你在 2026 年成为代码高手 20260503 - 个人小作品更新 SQL 入门 12:SQL 视图:创建、修改与可更新视图 C#如何实现Windows系统桌面截图功能... 6999元AMD新旗舰首测!锐龙9 9950X3D2性能解禁:这颗U根本不是给游戏玩家造的 SQL 入门 11:日期时间格式化、IF、CASE的使用 基于C#的校时类库的实现及使用 - 开源项目研究文章
一款基于 .Net WinForm 开发的节点编辑器,纯 GDI 实现,体积仅 100+Kb
lzhdim · 2026-05-10 · via 博客园 - lzhdim

做流程图、逻辑树、行为树这类东西的时候,你可能会想到用现成的流程引擎或者可视化框架。但大多数都太重了,要么依赖一堆库,要么体积巨大,集成到项目里光是依赖就能搞半天。STNodeEditor 是专门解决这个问题的。它是一个基于 .NET WinForm 开发的节点编辑器,采用纯 GDI 实现,没有额外依赖库

图片       适合什么场景01
图形化编程有些系统需要让用户自己定义业务逻辑,比如配置工作流、设计业务流程。如果让用户写代码,那门槛太高了。STNodeEditor 可以让用户通过拖拽节点和连接线来构建逻辑流程,不需要写代码,会用流程图就能上手。适合那种需要用户自定义规则的系统,比如审批流、配置工具、业务编排等。数据处理管道做数据处理的时候,通常是一系列步骤:清洗 -> 转换 -> 计算 -> 输出。每个步骤就是一个节点,数据沿着连接线从一个节点流向下一个节点。用 STNodeEditor 可以很直观地看到整个数据流动的路径,哪个节点出问题一目了然。游戏开发游戏里经常用到行为树、状态机、逻辑树。这些概念本身就是树状结构,用节点编辑器来做特别合适。

  • 行为树:AI 怎么做决策、什么时候攻击、什么时候逃跑
  • 状态机:游戏角色在不同状态之间切换
  • 逻辑树:复杂的条件判断

用 STNodeEditor 可以可视化地编辑这些树状结构,开发效率会高很多。自动化测试测试用例多了以后,管理和维护会很麻烦。如果把每个测试步骤做成一个节点,通过连接线定义执行顺序,那整个测试流程就一目了然。而且节点可以复用:同一个"登录"节点,可以在多个测试用例里复用。修改一次,所有用例都生效。科研模拟做科学研究的时候,经常需要反复调整参数、运行实验、观察结果。比如模拟一个物理过程、化学反应、经济模型。用 STNodeEditor 把整个模拟过程做成节点图,参数调整只需要在节点属性里改,改完运行看结果,非常方便。图片

图片       三个核心模块02
TreeView树形视图,用来展示和检索项目里所有的节点。你可以把节点直接从 TreeView 拖拽到编辑器里。像一个零件库,你需要哪个节点,从库里拖出来就行。PropertyGrid类似 Visual Studio 里的属性窗口。每个节点都有自己的属性,比如名称、参数、配置项。你可以在 PropertyGrid 里编辑这些属性。上手方式和设计 WinForm 差不多,会用 Visual Studio 拖控件的人,基本上看看就会了。不需要额外的学习成本。NodeEditor编辑器的主区域,是用户组合执行流程的地方。支持:

  • 拖拽节点
  • 连接节点(定义数据流向)
  • 删除节点
  • 选中、复制、粘贴

整个执行流程是可视化的,节点和连接线一目了然。复杂的逻辑流程在这里变得直观易懂。图片

图片       技术特点03
轻量级纯 GDI 实现,没有依赖任何第三方库。体积只有 100+Kb,集成到项目里几乎不会有负担。不需要装这个库那个包,解压就能用。高度自由提供了大量的虚函数,开发者可以重写这些函数来自定义节点的行为。比如:

  • 自定义节点的绘制方式(外观)
  • 自定义节点的交互逻辑(点击、双击、拖拽)
  • 自定义连接线的样式

你可以把节点做成任何你想要的样子。数据交互节点之间通过 InputOptions(输入)和 OutputOptions(输出)进行数据交互。支持两种连接模式:

  • 单连接模式(single-connection):一个输出只能连一个输入
  • 多连接模式(multi-connection):一个输出可以连多个输入

数据传递通过 DataTransfer 事件和 TransferData 方法实现。发送方调用 TransferData,接收方通过 DataTransfer 事件收到。这套机制很灵活,基本能满足各种场景的需求。可视化构建核心价值就在这:拖拽节点、连接线,就能构建执行流程。不需要写代码,不需要画图,直接在编辑器里操作。一个复杂的逻辑流程,拖拽几下就出来了。图片

图片       技术栈04

  • 开发环境:Visual Studio 2010
  • 框架:.NET 3.5 WinForm
  • 编程语言:C#
  • 图形绘制:纯 GDI(不依赖第三方绘图库)
  • 包管理:NuGet(提供 ST.Library.UI 包)

图片       适合谁用05

  • .NET WinForm 开发者,需要做可视化流程、逻辑树
  • 游戏开发者,需要行为树、状态机
  • 需要轻量级解决方案,不想要重型框架
  • 对依赖库敏感,希望项目尽量精简

GitHub:https://github.com/DebugST/STNodeEditor