yFiles.NET is an extensive Windows Forms class library for the Microsoft .NET environment.Its top-notch data structures and algorithms for viewing and editing diagrams allow you to automatically arrange complex graphs, diagrams, and networks with the click of a button.Similar functionality that bases on the Windows Presentation Foundation (WPF) is provided by the yFiles WPF library.
Powerful Graph Controls
yFiles.NET provides powerful Windows Forms controls that enable intuitive interaction with diagrams.
Easily edit and handle diagrams with simple mouse gestures.
Benefit from out-of-the-box support for zooming and panning, undo/redo, clipboard functionality, image export, and printing.
Enjoy smooth change animations and "magnetic" guide lines for manual element alignment.
All interaction capabilities are easily customizable to fit your specific needs.
Graph Analysis and Automatic Layout
yFiles.NET provides a wide variety of graph analysis algorithms, that let you tackle the most challenging analysis tasks easily.
The suite of automatic layout algorithms includes Hierarchic, Orthogonal, and Circular layout styles to automatically yield clear and concise diagrams from your data.
Routing algorithms optimize connection lines in existing diagrams.
Ample configuration possibilities suit even sophisticated layout demands.
The Graph Editor demo application is a fully-featured showcase of the visualization and automatic layout capabilities of yFiles.NET:
Add, delete, move, and label nodes and edges to create a graph
Interact using zoom and pan, undo/redo, copy/paste, and more
Apply layout algorithms
Load, save, and print graphs, and export graphs to images
The Graph Viewer demo application demonstrates user interaction possibilities such as zooming, panning, overview, and toggling additional node information.
The Collapsible Tree demo application loads a tree with many nodes, whose branches can be expanded and collapsed. The nodes are rendered with custom icons that indicate their current state. After an expand or collapse operation, the graph is redrawn using a configurable layout algorithm
yFiles.NET 18.104.22.168 - Changes Since 22.214.171.124
CanvasControl: In rare cases, calling Invalidate did not trigger repainting. This was especially noticeable in combination with a marquee selection rectangle.
RotatedSideSliderEdgeLabelModel: Label model parameters of this model were serialized as the respective parameters of RotatedSliderEdgeLabelModel. Thus, after loading, the positions of the labels are the expected ones but the label models changed.
RotatedSliderEdgeLabelModel: Parameters with ratio 0.5 were not correctly deserialized from GraphML.
FilteredGraphWrapper: The EdgesAt methods erroneously returned edges that were marked as hidden by the EdgePredicate. The methods Degree, InDegree, and OutDegree are based on these methods and were affected, too.
GraphSnapContext: Snapping nodes to vertical edge segments was not working if NodeToEdgeDistance was set to 0.
CollapsibleNodeStyleDecorator and ShadowNodeStyleDecorator: Lookup requests for ISizeConstraintProvider, IGroupBoundsCalculator, and IShapeGeometry are now correctly delegated to the wrapped style.
The EdgeStyleDecorationInstaller did not copy the tags of dummy ports and edges used when displayed in view coordinates (ZoomMode = DecorationZoomMode.ViewCoordinates).
OrthogonalLayouter failed almost always with an ArrayIndexOutOfRangeException if the Mixed Layout style was used.
IncrementalHierarchicalLayouter: Fixed possible exception caused by inconsistent grouping. The problem may only occur in incremental mode and if there are sequence constraints.
BusRouter: Fixed NullReferenceException that may appear for graphs containing isolated nodes with self-loops.
TreeReductionStage: Fixed wrong handling of group nodes which may cause a WrongGraphStructure exception as well as broken routes of edges incident to group nodes.
Fixed NullReferenceException when using AssistantPlacer together with distributed port assignment.
CircularLayouter: Fixed issue that may cause infinite/too large node coordinates for unfavorable input settings, for example, if the maximal deviation angle is to small. Note that such coordinates may produce infinite looping or other exceptions.