This "friend wheel" demonstrates the use of CircularLayout. The layout has been customized to make sure each node is considered to have a fixed diameter, ignoring the size of any TextBlock.

The custom layout also rotates each Node according to the actual angle at which the node was positioned. This information is available on the CircularVertex used by the CircularNetwork that the CircularLayout constructs from the nodes and links of the diagram.

Furthermore, when laying out the nodes it also flips the angle of the TextBlock so that the text is not upside-down.

This sample also adds MouseEnter and MouseLeave event handlers on the links, so that it can highlight the two nodes connected by the link.

Note that the link DataTemplate makes use of two link shapes, not just one. Both get exactly the same route and geometry, but one is wide and Transparent. The result is a normal appearance for the link but allows the thicker link shape to respond to mouse events that occur "near" to the thin link shape. This makes it much easier for the user to "pick" a link, particularly when the diagram is at a small scale (zoomed out).