FlowChart.NET version 6.6 contains the following new features and improvements -
AnimationsDiagram 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 display 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. Such classes must be registered for serialization by calling the RegisterItemClass method and providing a string identifier for the clientClass parameter.
Miscellaneous~ ContainerNode.Arrange(layoutInstance) method 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 Factory.CreateDiagramLink overload 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;
If anyone is interested in trying the beta version, please download this archive containing updated assembly files -
https://mindfusion.eu/_beta/fcnet66.zipAny comments, questions and general feedback are welcome.