Nodify(WPF) 节点编辑 核心组件API
NodifyEditor 类
NodifyEditor 是 Nodify 框架的核心控件,它管理节点、连接和交互:
- 视口控制
ViewportLocation:视口位置ViewportZoom:视口缩放级别MinViewportZoom/MaxViewportZoom:缩放限制ViewportTransform:视口变换
- 选择操作
SelectAll():选择所有项UnselectAll():取消选择所有项SelectArea():选择区域内的项InvertSelection():反转选择SelectAllConnections():选择所有连接
- 拖拽操作
BeginDragging():开始拖拽EndDragging():结束拖拽CancelDragging():取消拖拽
- 平移操作
BeginPanning():开始平移EndPanning():结束平移CancelPanning():取消平移
- 缩放操作
ZoomIn():放大ZoomOut():缩小ZoomAtPosition():在特定位置缩放
- 其他操作
FitToScreen():适应屏幕BringIntoView():将项目带入视图AlignSelection():对齐选中项
ItemContainer 类
ItemContainer 是节点的容器,负责处理节点的选择和拖拽:
- 属性
Location:位置ActualSize:实际大小IsSelected:是否被选中IsDraggable:是否可拖拽
- 方法
BeginDragging():开始拖拽EndDragging():结束拖拽CancelDragging():取消拖拽Select():选择此容器
Node 类
Node 是节点的视觉表示,包含输入和输出连接器:
- 属性
Header:节点标题Footer:节点底部Input:输入连接器集合Output:输出连接器集合ContentBrush:内容区域画刷HeaderBrush:标题区域画刷FooterBrush:底部区域画刷
2. 连接系统 API
Connector 类
Connector 是节点上的连接点,用于创建连接:
- 属性
Anchor:连接点位置IsConnected:是否已连接
- 方法
BeginConnecting():开始连接EndConnecting():结束连接RemoveConnections():移除连接
BaseConnection 类
BaseConnection 是所有连接类型的基类:
- 属性
Source:源点Target:目标点ArrowSize:箭头大小ArrowEnds:箭头端点Direction:连接方向Text:连接上的文本
- 方法
DrawLineGeometry():绘制线条几何图形SplitAtLocation():在特定位置分割连接
Connection 类
Connection 是标准的贝塞尔曲线连接:
- 方法
DrawLineGeometry():绘制贝塞尔曲线DrawDirectionalArrowsGeometry():绘制方向箭头
PendingConnection 类
PendingConnection 用于处理正在创建的连接:
- 属性
SourceAnchor:源锚点TargetAnchor:目标锚点Source:源数据上下文Target:目标数据上下文
3. 交互系统 API
EditorCommands 类
EditorCommands 提供了编辑器的命令:
ZoomIn:放大命令ZoomOut:缩小命令SelectAll:全选命令BringIntoView:带入视图命令Align:对齐命令FitToScreen:适应屏幕命令
InputProcessor 类
InputProcessor 处理输入事件:
- 方法
ProcessEvent():处理输入事件AddHandler():添加处理程序RemoveHandlers():移除处理程序
4. 特殊节点类型 API
GroupingNode 类
GroupingNode 是可以包含其他节点的容器节点:
- 属性
IsResizing:是否正在调整大小ChildrenArea:子节点区域
KnotNode 类
KnotNode 是用于连接路由/分割的轻量级节点。
StateNode 类
StateNode 是用于状态机表示的专用节点。
5. 高级功能 API
CuttingLine 类
CuttingLine 用于通过绘制线条来切断连接:
- 属性
Start:起点End:终点
Minimap 类
Minimap 提供整个图的概览和导航功能:
- 属性
ViewportLocation:视口位置ViewportSize:视口大小
6. 事件系统 API
Nodify 提供了丰富的事件系统,用于通知交互状态的变化:
ConnectionEventArgs/ConnectionEventHandler:连接事件ConnectorEventArgs/ConnectorEventHandler:连接器事件ItemsMovedEventArgs/ItemsMovedEventHandler:项目移动事件ResizeEventArgs/ResizeEventHandler:调整大小事件ZoomEventArgs/ZoomEventHandler:缩放事件
7. 交互状态 API
Nodify 使用状态模式来处理不同的交互状态:
EditorState:编辑器状态Cutting:切割状态Panning:平移状态PushingItems:推动项目状态Selecting:选择状态Zooming:缩放状态
ConnectorState:连接器状态Connecting:连接状态Default:默认状态Disconnect:断开连接状态
ContainerState:容器状态Default:默认状态Dragging:拖拽状态
8. 手势系统 API
Nodify 的手势系统提供了对输入事件的抽象:
MouseGesture:鼠标手势AnyGesture:任意手势AllGestures:所有手势EditorGestures:编辑器手势ConnectionGestures:连接手势ConnectorGestures:连接器手势ItemContainerGestures:项目容器手势NodifyEditorGestures:编辑器手势SelectionGestures:选择手势

浙公网安备 33010602011771号