The Interactive Force sample demonstrates the use of ForceDirectedLayout operating continuously, even while the user is dragging the selection.

Try dragging a node -- you will see that nodes connected to the dragged node will be pulled along. Links act as springs. All nodes repel each other, so you will find it hard (but not necessarily impossible) for nodes to overlap each other. Nodes act as if they have electrical charge.

The DraggingTool is customized so that with each drag's mouse move it performs another iteration of the ForceDirectedLayout.

The ForceDirectedLayout is customized so that selected Nodes are not moved by the layout, yet they still influence the layout by their presence. This is achieved by having the IsFixed value be true for those vertexes whose Node.IsSelected.

The LayoutManager is customized for optimization purposes. It assumes that there are no Groups with Layouts. It avoids re-creating the layout's ForceDirectedNetwork unnecessarily, by only doing so when a Node or a Link has been added or removed from the diagram.