Table of Contents

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

port Port

The port data to render.

node Node

The parent node.

context PortRenderContext

The 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

port Port
node Node
settings FlowCanvasSettings

Returns

double?

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

visual Control

The port's visual control being removed.

port Port

The port data.

node Node

The 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

visual Control

The port's visual control.

port Port

The port data.

node Node

The parent node.

context PortRenderContext

The 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

visual Control

The port's visual control.

port Port

The port data.

node Node

The parent node.

message string

Optional 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

visual Control

The port's visual control.

port Port

The port data.

node Node

The parent node.

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

visual Control

The port's visual control.

port Port

The port data.

node Node

The parent node.

context PortRenderContext

The rendering context.

state PortVisualState

The current port state.