private void RenderPath(AlignedConnectionPath path) { var polyline = new ConnectionPathsBuilder(ConnectorMargin).GetPolylineFromAlignedPath(path); polyline.SetValue(Canvas.ZIndexProperty, 1); ChartCanvas.Children.Add(polyline); var diagram = Object as DiagramDTO; if (diagram == null) { throw new InvalidOperationException(); } RenderCrowFoot( polyline.Points[1], polyline.Points[0], path.ConnectionPath.PrimitiveA, path.ConnectionPath.SideA, path.ConnectionPath.ConnectorTypeA, diagram.ShowModality); int lastPoint = polyline.Points.Count - 1; RenderCrowFoot( polyline.Points[lastPoint - 1], polyline.Points[lastPoint], path.ConnectionPath.PrimitiveB, path.ConnectionPath.SideB, path.ConnectionPath.ConnectorTypeB, diagram.ShowModality); }
private void RenderConnections() { var pb = new ConnectionPathsBuilder(ConnectorMargin); var paths = pb.GetPathsAligned(pb.GetPaths(_items, _links)); foreach (var path in paths) { RenderPath(path); } }