MindFusion Pack for WPF R1.2012 has been released. It adds the following new features:
MindFusion.ChartingSurface chartsNew type of charts has been added to the MindFusion.Charting for WPF control. It supports:
- positive and negative values on the X, Y and Z-axis with the SurfaceSeries.XData,SurfaceSeries.YData and SurfaceSeries.ZData properties;
- wireframe with adjustable color, width and thickness with the ShowWireFrame, SquareSize and WireFrameThickness properties;
- customizable surface color, elevation shape and sensitivity with the SurfaceColor, ElevationShape and ElevationSensitivity properties;
- interactive rotation of the camera with the AllowCameraInteraction property;
- adjustable camera position and light type with the RotationAngle, RotationAxis and LightType properties;
- scaling of the chart with the Scale property.
The new chart is represented by the SurfaceChart class. The tutorial
Building a Surface Chart offers step-by-step instructions on how to adjust a surface chart according to your needs.
DraggingUsers can drag data points in line charts or the top of a bar in bar charts to change the data value. This is done by setting the Behavior property to Behavior.AllowXDrag or Behavior.AllowYDrag. The Behavior enumeration now allows bitwise combination and you can enable dragging along both X and Y axis.
Second X-axisThe X2AxisSettings allows you to define a second X-axis. Data for series that are bound to X2 is set with X2Data. X2Labels sets custom labels for the X2-axis. Data binding is available through the X2DataPath and X2LabelPath properties.
ZoomZooming is now supported in all types of bar and line charts - just set the Behavior property to Behavior.ZoomChart. You can zoom out the chart one step at a time by calling ZoomOut. Use ResetZoom to restore the chart to its original state at once.
DateTime valuesYou can set the XData, YData or Y2Data of the LineSeries or BarSeries instances to DateTime values. Set the ValueFormat property of the respective AxisSettings object to ValueFormat.DateTime and specify appropriate DateTime values as start and end of the axis. You can find details on how to use DateTime values with the control in the DateTime Values section of this reference.
Miscellaneous- You can set the start angle in pie charts with StartAngle.
- Labels at the chart axis can be rotated with the LabelRotationAngle property.
- Improved space calculations in line and bar charts with mixed data.
- Data binding properties for the second Y-axis are available: Y2DataPath and Y2LabelPath.
- Chart series can have dashed strokes or outlines with the StrokeDashArray, StrokeDashCap, StrokeDashOffset, StrokeEndLineCap, StrokeLineJoin, StrokeMiterLimit and StrokeStartLineCap properties.
- The new LabelStroke property sets the brush for drawing labels at chart axes. The TitleStroke defines the brush for drawing the title label. TitleRotationAngle defines the rotation angle of the title label in horizontal axes.
MindFusion.DiagrammingRotation improvementsAttached nodes can rotate together with their master node if the group's FollowMasterRotation property is set to RotateChildren.
The Text of a ShapeNode can be rotated independently from the node by setting the TextRotationAngle property.
Fixed a bug where links did not follow the rotation of their target TreeViewNode.
The scroll buttons shown in the caption bar of a TableNode can now be used when the table is rotated.
VirtualizationVirtualizingDiagram can display very large diagrams where there are actual DiagramNode and DiagramLink instances created only for the elements that should be currently shown on screen. This helps keeping the WPF visual tree small and could lead to huge performance improvements if there are thousands of elements in the diagram.
The data items that should be displayed as nodes must be assigned to the NodesSource property, and the data items that should be displayed as links must be assigned to the LinksSource property. The BindingMode property specifies whether the data source should be updated when the user draws new diagram items interactively.
Automatic node alignmentIf AutoAlignNodes is enabled, the node currently being drawn or resized is aligned to another node so that a pair of their vertical or horizontal sides become collinear. To specify the maximal distance at which nodes are aligned, set the AutoAlignDistance property. The pair of aligned nodes is indicated visually by drawing an alignment guide using the pen assigned to AlignmentGuidePen.
Fractal tree layoutFractalLayout is a tree layout algorithm that places child nodes symmetrically around their parent node. Nodes at the lowest level are arranged directly in a circle around their parent. At the upper level, the already arranged nodes form branches that are arranged in a circle around the new parent node. The algorithm is recursively repeated till the highest level is reached. If nodes in the tree have uniform number of children, the end result has fractal-like appearance (subsets of the graph look like scaled-down copies of the whole graph).
You can choose which node should be displayed at the center of the topmost circle by setting the Root property. If it is not specified, the algorithm automatically selects a root that leads to more balanced distribution of nodes.
Miscellaneous- The SaveToXml method now saves the definition of a custom Shape if a node's Shape has not any Id specified.
- If NegatedY is set, the vertical Ruler scale displays negated Y coordinates.
- The Ruler control scales now start from the origin of the diagram's Bounds instead of (0,0).
- Fixed a bug where GroupAnchorStyles attachments did not preserve the correct distance for some values.
- The TextBox control used for in-place editing now wraps text to multiple lines by default.
- The Id property added to DiagramItem allows assigning custom identifiers to items. It can also be used to just store additional custom data similarly to Tag.
- Call FindLinkById and FindNodeById to find items by their Id.
- HookHeaders enables lane headers to be anchored to the left and top sides of the control's visible area.
- Improved path-finding for long links in QuickRouter.
- StartPoint and EndPoint provide a shortcut to setting the first and last control points of a DiagramLink.
- Specify start and end nodes in LayeredLayout via the StartNode and EndNode properties.
- GetAllIncomingLinks and GetAllOutgoingLinks methods added to DiagramNode.
- Self-loop links that connect TableNode rows or TreeViewNode items are now routed around the node preserving their correct end points.
- Links automatically align to the center of table rows or tree-view items when AutoSnapLinks is enabled.
- Diagram.Viewport returns the currently visible region of the diagram.
- Draw with the right or middle mouse button by setting RightButtonAction or MiddleButtonAction to Draw.
MindFusion.MappingMindFusion.Mapping for WPF has been initially added to MindFusion Pack for WPF.
MindFusion.SchedulingOptimizationsThe Calendar control now support virtualization and is able to handle hundreds of items. The virtualization cannot be turned off. When using custom item or cell presenters, you need to pay special attention to the fact that those presenters can be subsequently reused by the virtualization engine for other items or cells. When a CellPresenter is reused, its StartTime and EndTime properties are updated to reflect the start and end time of the new cell. This causes the OnStartTimeChanged and OnEndTimeChanged methods to be invoked. When an ItemPresenter is reused its Item property is updated and its OnItemChanged method is invoked.
Delayed ScrollingDelayed scrolling can now be enabled through the new DelayScroll property. When scrolling is delayed calendar views do not update immediatelly during scrollbar interactions. Instead the control displays a small tooltip with information about the new scroll position. The contents of the tooltip can be a date or an index, depending on the specific view and the scrollbar being modified. When the scrollbar interaction is complete, the view updates to reflect the new scroll position.
MiscellaneousThe new KeepItemOrder property can be used to prioritize the newly created items during collision processing.
Registered customers with an active upgrade subscription can download the licensed version from the
clients area on our site.
A trial version is available for download here:
https://www.mindfusion.eu/WpfPackTrial.zipEnjoy!