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
:选择手势