Skip to main content

ChartManager component

ChartManager control can be used to coordinate interoperation of several LightningChart controls. Add ChartManager control to your form. Then, assign the manager control to ChartManager property of all LightningChart controls.

Chart interoperation, drag-drop

ChartManager enables series drag-drop from chart to another in WinForms. For WPF it’s not usable for technical reasons.

Series have DisableDragToAnotherAxis property which must be set to False to enable the dragging. It is True by default.

tip

Drag and drop series over YAxis in the same chart works in WinForms and WPF and does not require ChartManager.

Axes have AllowSeriesDragDrop property which can be set to False to prevent dragging over specific axis. Default value is True.

Move mouse over the series to be dragged, press left mouse button down to start dragging.

Dragging over Y axis: Drag the series over Y axis of another chart and release the button. The other chart takes the ownership of the series and the series is assigned to the target Y axis. This also assigns the first X axis for the series.

Dragging over X axis: Drag the series over X axis of another chart and release the button. The other chart takes the ownership of the series and the series is assigned to the target X axis. This also assigns the first Y axis for the series.

tip

More general solution for drag-and-drop series in the same chart can be implemented with mouse-cursor event handlers (MouseDown, MouseMove, MouseUp etc.). And 'drop' can be made on any place in the chart.

For creating between charts or windows data transfer, user can use .NET class DragDrop.

Memory management enhancement

In some extreme real-time monitoring applications, the .NET garbage collector does not free unused memory well enough if the application is run with high CPU load. Garbage collector frees all the memory at once, causing a visible ‘freeze’ or ‘pause’ when updating a chart. To make the chart updates smoother, enable ChartManager’s MemoryGarbageCollecting property. This allows a separate thread to be used to free the memory more often regardless of the CPU load. Using MemoryGarbageCollecting is recommended to be used with multi-core processors, as the thread running will slightly load the CPU.