Interface IPortRenderer
- Namespace
- FlowGraph.Avalonia.Rendering.PortRenderers
- Assembly
- FlowGraph.Avalonia.dll
Interface for custom port renderers. Implement this interface to create custom visual representations for port types.
public interface IPortRenderer
Methods
CreatePortVisual(Port, Node, PortRenderContext)
Creates the visual representation for a port.
Control CreatePortVisual(Port port, Node node, PortRenderContext context)
Parameters
portPortThe port data to render.
nodeNodeThe parent node.
contextPortRenderContextThe rendering context with theme, scale, and settings.
Returns
- Control
A Control representing the port visual.
GetSize(Port, Node, FlowCanvasSettings)
Gets the size of the port visual in pixels (before scaling). Return null to use the default port size from settings.
double? GetSize(Port port, Node node, FlowCanvasSettings settings)
Parameters
portPortnodeNodesettingsFlowCanvasSettings
Returns
OnDetached(Control, Port, Node)
Called when the port visual is being removed from the canvas. Use this to stop animations and clean up resources.
void OnDetached(Control visual, Port port, Node node)
Parameters
visualControlThe port's visual control being removed.
portPortThe port data.
nodeNodeThe parent node.
TriggerDataPulse(Control, Port, Node, PortRenderContext)
Triggers a one-shot data pulse animation to indicate data flowing through the port.
void TriggerDataPulse(Control visual, Port port, Node node, PortRenderContext context)
Parameters
visualControlThe port's visual control.
portPortThe port data.
nodeNodeThe parent node.
contextPortRenderContextThe rendering context.
TriggerError(Control, Port, Node, string?)
Triggers a one-shot error animation (e.g., shake effect) for validation failures.
void TriggerError(Control visual, Port port, Node node, string? message)
Parameters
visualControlThe port's visual control.
portPortThe port data.
nodeNodeThe parent node.
messagestringOptional error message.
TriggerSuccess(Control, Port, Node)
Triggers a one-shot success animation (e.g., flash effect) for successful connections.
void TriggerSuccess(Control visual, Port port, Node node)
Parameters
UpdateState(Control, Port, Node, PortRenderContext, PortVisualState)
Updates the visual state when the port state changes (hover, connected, etc.).
void UpdateState(Control visual, Port port, Node node, PortRenderContext context, PortVisualState state)
Parameters
visualControlThe port's visual control.
portPortThe port data.
nodeNodeThe parent node.
contextPortRenderContextThe rendering context.
statePortVisualStateThe current port state.