Version 3.5 of WPF Diagram control contains the following new features and improvements -
Non-blocking layout methodsAll graph layout classes now contain an async ArrangeAsync method that runs layout calculations in a background task. This is only available in .NET 4.5 build of the diagram assemblies.
async void OnLayoutLayered(object sender, RoutedEventArgs e)
{
var layout = new LayeredLayout();
await layout.ArrangeAsync(diagram);
diagram.ZoomToFit();
}
VirtualizingDiagram improvements~ VirtualizingDiagram can contain nodes of different types now. Nodes returned for data items by InstantiateNode callback are stored in separate pools according to their type, and data items reuse node instances from respective pool. VisualCacheSize now specifies the size of per-type node pools.
~ If a data item has Container property set, the control associates its node with Container item's node. It Container item has been realized as a ContainerNode, the source node is added to it as a child. If Container realized node is of another type, the source node is attached as subordinate using AttachTo method. An alternative way to specify container items is via the ResolveContainer callback.
Miscellaneous~ The LinkTextEdited event is now raised when a LinkLabel has been edited. The edited label is specified via Label property of the event arguments object.
~ LinksPadding property added to LayeredLayout specifies how much space to leave between links when LinkType is set to Cascading.
~ GridAlignPoint property of DiagramNode class specifies which point of a node should snap to a point of the alignment grid.
If anyone is interested in trying the beta version, please download this archive containing updated assembly files -
https://mindfusion.eu/_beta/wpfdiag35.zipAny comments, questions and general feedback are welcome.