This sample creates swim lanes by using a Group for each lane. The Group.Layout for each lane is a TreeLayout.

The Diagram.Layout is a custom layout that arranges the lanes in a vertical stack. Because the GroupSizeChanged value is included in the DiagramLayout.Conditions, as any lane (i.e. group) changes size, the diagram is laid out again.