We have released MindFusion.WinForms Pack 2025.R2. It adds following new features and improvements:
MindFusion.DiagrammingPaged 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 PageIconRenderer property of Renderers, 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.
- Improved padding in BPMN shapes' geometries.
- Visio2013Exporter improvements.
- Fix for items remaining in spatial index if calling some APIs from deleted events.
- PagedContainerNode fixes.
- Fix for GridRouter not updating spatial index.
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 type of nodes drawn by users:
diagramView.CustomBehavior = new LinkNodesBehavior<MyNode>(
diagramView, diagram => new MyNode(diagram));
MindFusion.SpreadsheetOptimized calculation enginePerformance in large multi-sheet workbooks has been improved by introducing spatial indexing of cell data, leading to 2-3 times faster initial and incremental formula calculations.
New functions- SUMIFS adds the cells in a range that meet multiple criteria.
- COUNTIFS counts the number of cells specified by a given set of conditions or criteria.
- CONCAT merges text from several ranges and/or individual strings.
- TEXTJOIN combines text from multiple ranges or strings, inserting a specified delimiter between each text value.
Miscellaneous- SUMIF / COUNTIF criteria are now case-insensitive for compatibility with Excel.
- [h], [m] and [s] format specifiers allow displaying time totals with more than 24 hours or 60 minutes / seconds respectively.
MindFusion Virtual KeyboardLayout ringYou can define a sequence of keyboard layouts that can be cycled through by setting the LayoutRing property. Add LayoutRingKey to your layouts to let users cycle through the list. Layouts from this list are automatically assigned to TemplateLayout when user presses the LayoutRingKey, or if you call the SelectLayout method from code.
The KeyboardLayout class includes two new properties to control the appearance of the LayoutRingKey: Image and Label. One of these is displayed by the key to indicate the next layout in the cycle, following this priority:
1. If the next layout has a non-null / empty Image property, that image is displayed.
2. If there is no Image assigned to the layout, but the Label property is set, that text is displayed as key's Content.
3. If neither Image nor Label is set, the key will display the Unicode keyboard symbol (U+2328) as a fallback.
This code from the LayoutRing sample project demonstrates how to load layouts and populate the LayoutRing:
var lettersLayout = KeyboardLayout.Create("letters.xml");
var numbersLayout = KeyboardLayout.Create("numbers.xml");
var symbolsLayout = KeyboardLayout.Create("symbols.xml");
virtualKeyboard.LayoutRing.Add(lettersLayout);
virtualKeyboard.LayoutRing.Add(numbersLayout);
virtualKeyboard.LayoutRing.Add(symbolsLayout);
virtualKeyboard.SelectLayout(0);
SVG imagesThe Image property of Key class can now be set to the file name of an SVG (Scalable Vector Graphics) drawing, in addition to bitmap file formats supported by older versions of the control.
Miscellaneous- The Stretch property specifies how the control fills available space in its parent element.
- ImageAlign property of KeyTemplate specifies how images are aligned relatively to keys' bounding rectangles.
- Keyboard Creator fixes.
- New color schemes added to Theme enumeration.
Installer for the latest version can be downloaded here, or from the
clients area on our site:
https://mindfusion.dev/WinFormsTrial.zipUpdated assemblies are also available as
https://www.nuget.org/packages/MindFusion.Pack.WinForms/ NuGet package.
Enjoy!