MindFusion Pack for WinForms, 2020.R1 has been released with the following new changes and additions:
MindFusion.DiagrammingAnimationsDiagram items can now be animated through the Animation class from MindFusion.Animations namespace, letting you for example attract user attention to a node by running a bouncing animation:
// start bouncing animation
var animationOptions = new AnimationOptions();
animationOptions.FromValue = node.Bounds.Y;
animationOptions.ToValue = node.Bounds.Y + 50;
animationOptions.Duration = 1000 * 5;
animationOptions.AnimationType = AnimationType.Bounce;
animationOptions.EasingType = EasingType.EaseOut;
var animation = new Animation(node, animationOptions);
animation.Start();
By default, animations change the vertical position of nodes. Other node properties can be animated by providing an UpdateCallback function to the Animation constructor, which will be called each time an animation progresses. The Animation class implements several built-in animation and easing types, which allow implementing various effects such as bounce, slide in or out, fade in or out. Custom animation functions can be defined too.
Animated 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.
Miscellaneous- Arrange method of ContainerNode arranges the child items inside a container using the specified layout class.
- 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.
- New CreateDiagramLink overload of the Factory class makes it easier to create links between TreeViewNode items.
- ZoomControl's zoom level label is now rendered using the inherited Control.Font property instead of a hard-coded font.
MindFusion Virtual KeyboardGeneral 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:
MindFusion.ChartingAxis originThe Origin method of Axis class lets you specify the origin of an axis. If set to a non-null value, the component renders an axis line inside the plot. Bars are drawn below that axis line if their values are smaller than the origin. For stacked bar charts, each bar length corresponds to the difference between bar's value and origin.
Miscellaneous- ToolTips property added to SimpleSeries class specifies tooltips for data values.
- DataLabelsBackground property added to Theme class specifies background of data labels.
- DataLabelsBorderStroke, DataLabelsBorderDashStyle, DataLabelsBorderThickness properties of Theme class allow displaying and customizing borders around data labels.
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- StartProcess, ProcessFileName and ProcessArguments properties added to Reminder.
MindFusion.Reporting- Create barcodes in code-128 format by setting their Format property to BarcodeFormat.Code128.
- Visual Studio 2019 support.
MindFusion.Spreadsheet for WinForms- VLOOKUP function fixes.
- Validation dropdown can now display values from a named cell range.
- Fixed rendering of multi-line text when wrapping is enabled.
MindFusion.UI for WinForms Fixed button duplication in dock control.
Installer for the latest version can be downloaded here, or from the
clients area on our site:
https://mindfusion.eu/WinFormsTrial.zipUpdated assemblies are also available as
https://www.nuget.org/packages/MindFusion.Pack/ NuGet package.
Enjoy!