Connection lines are not just static strokes: they can visualize flow direction, throughput, status and cardinality. All of it is configured per line through ConnectionLine (or any IConnectionLine implementation).

Animation Styles

Seven FlowAnimationStyle values ship with the framework. Each is a self-contained effect drawn along the line path, from the classic moving dots to directional arrows:

StyleVisualBest for
DotsGlowing circles moving along the path (default)General data flow, presentations
DashesDashes travelling along the lineSimple, low-noise flow indication
WavePulsing wave distortion along the strokeSignals and continuous streams
GradientMoving color gradientEmphasizing direction on thick lines
ParticlesParticles with trailing tailsHigh-throughput or turbulent flow
PulseGlowing pulse travelling end to endEvent or trigger propagation
ArrowsArrow shapes flowing along the linePipelines and staged processing

Animation is opt-in per line: set IsDataFlowAnimated = true and choose a style with AnimationStyle. The lighter IsAnimated flag is for generic line animation without data-flow semantics.

Data-Flow Configuration

PropertyTypeDescription
IsDataFlowAnimatedboolEnables the animated data-flow rendering.
AnimationStyleFlowAnimationStyleWhich of the seven effects to draw.
FlowDirectionDataFlowDirectionNone, Forward, Backward or Bidirectional. Controls the travel direction.
DataFlowSpeedfloatPixels per second; default 100.
DataFlowParticleSizefloatSize of the moving element in pixels; default 4.
DataFlowColorSKColorColor of the animated element; defaults to SKColors.Blue.

Because the effect depends on time, a line with animation requests frames while visible. Static diagrams should leave animation off — see the Performance Guide.

Status Indicators

Lines can report execution state, which the renderer draws as a colored indicator on the line:

PropertyTypeDescription
ShowStatusIndicatorboolDraws the status marker when true.
StatusLineStatusNone, Working, Running, Warning or Error.
StatusColorSKColorColor of the marker; defaults to SKColors.DimGray.

Schema validation reuses the same mechanism: when a connection's expected schema does not match the produced schema, the line is flagged LineStatus.Warning with an amber indicator (see the ETL family).

Arrows, Dashes and Multiplicity

PropertyTypeDescription
ShowStartArrow / ShowEndArrowboolArrowheads at each end; both default to true.
ArrowSizefloatArrowhead size; default 10.
DashPatternfloat[]Optional dash pattern applied to the stroke.
StartMultiplicity / EndMultiplicityERDMultiplicityERD crow's-foot markers at each end.

ERDMultiplicity values: Unspecified, ZeroOrOne (circle + bar), OneOnly (double bar), OneOrMany (bar + crow's foot), ZeroOrMany (circle + crow's foot), Many (crow's foot) and One (single bar).

Putting It Together

drawingManager.ConnectComponents(sourceNode, targetNode);

var line = drawingManager.GetLines().Last();

// Animated data flow
line.IsDataFlowAnimated = true;
line.AnimationStyle = FlowAnimationStyle.Particles;
line.FlowDirection = DataFlowDirection.Forward;
line.DataFlowColor = SKColors.DeepSkyBlue;
line.DataFlowSpeed = 140f;
line.DataFlowParticleSize = 5f;

// Status + styling
line.ShowStatusIndicator = true;
line.Status = LineStatus.Running;
line.LineColor = SKColors.SlateGray;
line.Paint.StrokeWidth = 2.5f;
line.ArrowSize = 12f;
line.ShowEndArrow = true;

// ERD cardinality
line.StartMultiplicity = ERDMultiplicity.ZeroOrMany;
line.EndMultiplicity = ERDMultiplicity.OneOnly;

drawingManager.RequestRedraw();