FlowChart.NET version 7.1 contains the following new features and improvements -
Paged containersPagedContainerNode is a ContainerNode subclass that organizes its child nodes into a collection of pages, represented by ContainerPage objects. This allows for the creation of more orgainzed diagrams where nodes can be grouped into logical views within a single container. Only the nodes belonging to the currently active page, specified by CurrentPage property, are rendered and participate in user interactions.
Navigation between pages is handled by scroll arrows in the caption bar, allowing users to cycle through the pages sequentially. For faster access, users can also double-click the container's caption to open an in-place combo box listing available page titles, enabling direct navigation to any page. The node's Caption automatically displays the Title of newly activated ContainerPage.
The appearance of pager arrows can be fully customized by implementing a PageIconRenderer and assigning it to the static Renderers.PageIconRenderer property, allowing for custom drawing logic, images, or SVG icons.
ItemLabel imageNew Image property added to ItemLabel lets you display icons along a link's geometry, or add more images to a ShapeNode. If a label contains both Text and Image, their relative position is specified by ImageAlign property (by default the image is placed on left side of text), and distance by ContentPadding. The image is rendered using bitmap's intrinsic size, unless you override it by setting ImageSize property. You can treat label images as clickable icons by handling LinkClicked or NodeClicked events and checking label argument passed to their handlers.
Miscellaneous- JSON serialization fixes and improvements.
- PatternRouter improvements.
- Improved PdfExporter text export for PDFs rendered in Edge browser.
API changesPer-node-type behavior classes have been replaced by generic classes with a factory delegate / lambda parameter. E.g. if you were subclassing LinkShapesBehavior, now you'd have to replace base class with LinkNodesBehavior<ShapeNode>. New classes also let you avoid subclassing if you only need to specify the node type drawn by users:
diagramView.CustomBehavior = new LinkNodesBehavior<MyNode>(
diagramView, diagram => new MyNode(diagram));
If anyone is interested in trying the beta version, please install this (preview mode) nuget package -
https://www.nuget.org/packages/MindFusion.Diagramming/7.1.0-beta3Any comments, questions and general feedback are welcome.