MindFusion.WPF Pack 2020.R1 has been released with the following new changes and additions:
MindFusion.Diagramming for WPFAnimated layoutArrangeAnimated methods added to Diagram and ContainerNode classes animate the movement of items from their original locations to new locations assigned by the layout object. This can be used to create an explode effect by starting new layout from overlapping nodes on same position, or an insertion effect by adding a new node to an existing layout.
JSON SerializationDiagrams can now be serialized in JSON format. This can be used for interoperability with MindFusion JavaScript diagramming library, or for general storage in JSON files or databases. To serialize a Diagram to a JSON string, call its SaveToJson method. To deserialize a diagram back from its JSON representation, call the LoadFromJson method. Custom item classes can implement JSON serialization for their additional properties by overriding the SaveToJson and LoadFromJson methods of DiagramItem. Such classes must be registered for serialization by calling the RegisterItemClass method and providing a string identifier for the clientClass parameter.
Localization improvements- Right-to-left text support in PdfExporter.
- Support for right-to-left text in styled text. This is still experimental and behind static RightToLeftStyledText flag.
- Fix for PdfExporter creating incorrect PDF files on Chinese versions of Windows.
DXF ExporterDxfExporter exports diagrams to AutoDesk Drawing Exchange Format (DXF) files. In order to use this component, add a reference to the MindFusion.Diagramming.Wpf.DxfExport.dll assembly to the project. To create a DXF file from a diagram, create a DxfExporter instance and call its Export method, specifying a Diagram object and a file path as arguments.
Miscellaneous- Arrange method of ContainerNode arranges the child items inside a container using the specified layout class.
- Set the AutoGrow property to false to prevent containers from resizing automatically when they would not fit newly added nodes.
- New CreateDiagramLink overload of the Factory class makes it easier to create links between TreeViewNode items.
- NodeCreateCancelled, NodeModifyCancelled, LinkCreateCancelled, LinkModifyCancelled events raised when create or modify operation on item is cancelled.
- SelectionModifyCancelled event raised when modification of multiple-selection is cancelled.
- For consistency with MindFusion APIs for other platforms, the Diagram class now provides Arrange and ArrangeAsync (CLR 4.5+) methods that take a layout object as argument.
- Improved rendering performance for large diagrams.
- MoveShades mode now supported for nodes with custom templates.
- LinkPadding property of LayeredLayout is now applied for all link types.
- RerouteLinks.Never flag is now considered by multiple selection.
- Fixed ExcelExporter exception when exporting multi-page documents.
- LoadFromXml method of Diagram is now virtual and can be overridden.
- Fixed exception in GridRouter.
- Fixed Clear method of diagram's Items, Links, Nodes collections.
- Fixed formatting of link texts that contain pipe symbols.
- Fixed offset of custom shapes outline in exported PDF and SVG files.
- Fixed uneven multiple resize when AutoAlignNodes is enabled.
MindFusion.Spreadsheet for WPFLocalization improvements- Cells can display right-to-left text.
- Fix for PdfExporter creating incorrect PDF files on Chinese versions of Windows.
- Right-to-left text support in PdfExporter.
Miscellaneous- ExcelExporter fix for format warnings in Excel when opening Worksheet whose Name is longer than 30 characters.
- Validation dropdown can now display values from a named cell range.
- Enable AutoFillCopyOnly to make the auto-fill tool only copy values instead of extrapolating new values from selection.
- VLOOKUP function fixes.
MindFusion.Keyboard for WPFGeneral IME modeThe component now supports general IME mode that maps raw input sequence to dictionary entries. The keyboard collects clicked characters in a staging area and shows the matching entries as suggestions. Users can either click a suggestion button to send its content as input, or click the space key to send the first suggestion.
To enable IME mode, call the LoadImeTable method, specifying the language for which to load IME table and the dictionary file path. The table file format contains one line per entry, with three tab delimited values: raw input, translation, frequency. For example, a hypothetical IME table that translates chemical formulas to compound's common name could look like this:
c3h8o Propan-2-ol 2
c3h8o Propanol 4
h2o Water 1
c3h8o Methoxyethane 1
c3h8o Propan-1-ol 3
c2h6 Ethane 1
c3h7br 1-bromopropane 3
c3h7br 2-bromopropane 2
....
vk.LoadImeTable(
new CultureInfo("en-US"), "chemical.txt");
and suggestions for the partial input "c3h" will look like this:
ChineseThe component can parse IME tables from the Linux Ibus project to implement various Chinese transliteration systems. For example you can load following tables for respectively mainland China's simplified Chinese, Taiwan's traditional Chinese and Hong-Kong's Cangjie input methods:
Pinyin,
Zhuyin,
Cangjie.
The following image shows the Zhuyin input method:
JapaneseIf current language is Japanese, the keyboard renders Hiragana characters. In addition, LoadImeTable can parse tables from Google's mozc project to convert Hiragana to Kanji. To enable this mode, specify path to a directory containing the 10 dictionary files from following link:
https://github.com/google/mozc/tree/master/src/data/dictionary_ossThis image demonstrates Hiragana to Kanji conversion:
KoreanThe keyboard renders Hangul letters when current language is Korean, and automatically enables IME mode that converts letter sequences to Hangul syllabic blocks according to Unicode rules:
Dictionary licensingNote that the open source Chinese and Japanese dictionaries have licensing terms of their own - some are in the public domain, some include attribution / no warranty clauses, some are LGPL. For licensing terms, check comments in respective dictionary files or license sections of their parent project. If there is enough interest, we will consider providing built-in dictionaries on MindFusion's standard licensing terms for next releases.
MindFusion.SchedulingJSON serializationSchedules can now be serialized in JSON format. This can be used for interoperability with MindFusion JavaScript scheduling library, or for general storage in JSON files or databases. To serialize a Schedule to a JSON string, call its SaveToJson method. To deserialize a schedule back from its JSON representation, call the LoadFromJson method. Custom item classes can implement JSON serialization for their additional properties by overriding the SaveTo(JsonObject) and LoadFrom(JsonObject) methods of base Item class. Such classes must be registered for serialization by calling the RegisterItemClass method and providing a string identifier for the clientClass parameter.
Miscellaneous- The ShowPaddingItems property specifies whether to show items in padding days of month views.
- GetFirstDate, GetFirstVisibleDate, GetLastDate, GetLastVisibleDate methods added to Calendar.
MindFusion.ChartingSpecify custom grid line positions by setting GridType to Custom and assigning coordinates to XGridLines and YGridLines collections.
Installer for the latest version can be downloaded here, or from the
clients area on our site:
https://mindfusion.eu/WpfPackTrial.zipUpdated assemblies are also available as
MindFusion.Pack.Wpf NuGet package.
Enjoy!