We have released version 2.2 of WpfDiagram. It provides the following new features:
*** TreeView nodes ***
The TreeViewNode class represents nodes that can display hierarchical data. The root items displayed in the node can be accessed through the RootItems property. New items can be added to and removed from the returned collection. The root items can have child items on their own and so on. For more information, refer to the TreeViewItem class.
*** BPMN shapes ***
This version adds predefined Shape definitions that implement the Object Management Group / Business Process Management notation. They are available as members of the Shapes class and have names that start with a Bpmn prefix. They can also be accessed by ID using the FromId method of Shape.
*** Flowchart graph layout ***
FlowchartLayout recognizes program code -like patterns in the graph, such as loops, sequences and if/switch branchings, and arranges them recursively. FlowchartLayout could be used to arrange other types of graphs as well, though with some restrictions. For example it treats all back links as loops in the code, and expects that they are nested - loop links starting closer to the stop node should end closer to the start node. Another similar restriction is that there shouldn't be any cross-links that connect different branches of a decision sub-graph.
*** Topological graph layout ***
If the underlying graph if acyclic, TopologicalLayout arranges the nodes linearly in such a way that each node comes before all destination nodes of its outgoing links. The links are drawn as curves above the chain of nodes, with their height proportional to the distance between the nodes. If the graph is not acyclic, the layout algorithm finds an ordering with a minimal number of back links, and draws the back links below the chain of nodes.
*** Link routing enhancements ***
A much faster link routing algorithm has been implemented. It can arrange a thousand links for just a few seconds, while older versions would require several minutes. Now it is also possible to create custom routing classes to be used when a link must be routed by implementing the ILinkRouter interface. An instance of such class can be set through the LinkRouter property of the Diagram. MindFusion.Diagramming provides two classes that implement ILinkRouter - GridRouter and QuickRouter. By default LinkRouter is set to a QuickRouter instance.
*** Miscellaneous ***
~ The Behavior property can be set to Pan to allow panning without holding down ALT.
~ The ClipImage property of ShapeNode specifies whether the Image should be clipped by the shape geometry.
~ TableNode rows can be highlighted by setting their HighlightedRow property.
~ A new UpdateFromPoints overloaded method added to DiagramLink.
~ The LinkHitDistance property lets you specify the furthest distance from links that a click would be considered a hit.
~ The Ruler control raises the NodesAligned event when the user aligns nodes using the alignment guide.
~ The ReassignAnchorPoints method added to DiagramNode distributes all links connected to a node evenly among the available anchor points.
~ A new CreateImage overload allows exporting scaled images.
*** API changes ***
~ The type of the Image property of nodes and table cells has been changed from BitmapSource to ImageSource. This allows using Xaml drawing as images.
~ The GridColor property has been replaced by GridPen.
~ Now the ItemAdded event is raised also when items are added programmatically.
Registered customers with an active upgrade subscription will receive their upgrades shortly.
A trial version is available for download here:
https://mindfusion.eu/WpfDiagTrial.zip Enjoy!