LC .NET version 12.3.1.1
Released June 12th, 2025.
In this release we focus on fixing errors and worked on several improvements. Those changes
mostly concern proper automatic margins calculations, better positioning of axis text, as well as
improved line-drawing precision and HERE tile map quality.
Improved line-drawing precision to 14-15 digits on ViewXY
Now line-series will be drawn correctly even then axes visible range just fraction of pico-unit
(10-12, or improved precision to 14-15 digits). This allows much deeper zoom-in.
Improved HERE tile map quality
HERE map rendering services upgraded to use higher quality images as default. However,
public Size property is added, which allows user to select lower quality image to speed up map
tile download.
Other changes
New volumetric example is added to Interactive Examples App and older examples are polished.
Check out the rest of the changelog for detailed information.
This is a full listing of the changes in version 12.3.1 against 12.2.1
LightningChart® .NET Changelog
Improvements
• Refined chart export to vector format (EMF) - [BCB]
DirectX rendering, image in raster format image and image in vector format (EMF, SVG) are
not identical (e.g. due to different renders and text engine used). This change tries to make
exported image in PNG and EMF format as close as possible. In particular, now axis ticks
interval should be the same in for normal rendering and for EMF exported chart.vector
format
• Improved HERE tile map quality and modified copyright text
From now chart will use highest quality HERE map images (size 512 per tile). In addition,
new Size and PPI properties are added, which allow user to choose the size of each tile and
size of text/icons. Finally HERE service copyright text is rendered according to latest
requirements.
• Improved line-drawing precision to 14-15 digits on ViewXY
Previously line segment drawing maybe incorrect once axes visible range was fraction of
micro-unit (10^-6, or at precision of 7-8 digits). This manifested as wrong line inclination or
disappearance, and was due to rounding errors in arithmetic calculations. Now line-series
will be drawn correctly even then axes visible range just fraction of pico-unit (10^-12, or
improved precision to 14-15 digits). This allows much deeper zoom-in. Note, that changes
apply to SampleDataSeries, PointLineSeries, FreeformPointLineSeries, HighLowSeries,
AreaSeries and StockSeries.
Error fixes
• BarSeries will not crash if Values array is empty or null
Previously, if BarSeries Values array is empty or null, it may crash (with index-out-of-range
exception). Now issue is fixed.
• GetLabelsFormat() method returns correct format for AxisValueType.DateTime or when
DataCursor enabled
In previous version (v12.2.1) some changes created the issue with Axis.GetLabelsFormat()
method. In particular, when AxisValueType.DateTime or when DataCursor is enabled, the
method was not returning correct format. Now issue is fixed.
• After Chart.Title properties changed XY margins rendered correctly
In previous version (v12.2.1) some changes created the issue with Chart.Title properties. In
particular, when AutoAdjustMargins=True, modification of Chart.Title properties (e.g. Align,
Font, Text, Visible, Angle) was not updating XY margins. Now issue is fixed.
• Space between LegendBox items does not change with windows scaling
In several latest versions, the space between LegendBox items/title may vary depending on
windows scaling/zooming factor (in particular for WinForms). Now issue is fixed.
• YAxis width calculation is improved
Previously YAxis width calculation sometimes may be not up-to-date. This may be
manifesting during zooming or chart resizing, when title was rendered in wrong position.
Now those issues are fixed.
• xAxis FormatValueLabel event will not needlessly effect tick interval
In previous version (12.2.1) subscribing to xAxis.FormatValueLabel event may change how
xAxis tick interval is calculated. In particular, when AutoDivSpacing is disabled, major tick
interval maybe larger than set by MajorDiv and allowed by available space. Now it is fixed.
• Zoombar control updates correctly when data changes
Zoombar control now correctly updates itself to match the referenced main chart when
Invalidate() and DoAutoScale are called.
• PointLineSeries.Points property is now updated properly in MVVM edition
Previously, PointLineSeries.Points property is not updated, if MVVM edition is used , and if
PointLineSeries.AddPoints method is used. Now issue is fixed
• Symbols used in series’ title will not affect LegendBox height.
Previously (in v12.2, v12.1, v12.0) LegendBox height was varying, if different symbols are
used in series’ title. In particular, if title text has symbols with ascender or descender part, the
LegendBox will be higher (or gap between titles is rendered larger). Now string template is
used to measure height of specific font, which makes LegendBox height invariant to title
text.
• After YAxisAutoPlacement / XAxisAutoPlacement property change axes rendered
correctly
In previous version (v12.2.1) some changes created the issue with YAxisAutoPlacement /
XAxisAutoPlacement properties. In particular, when AutoAdjustMargins=False,
modification of YAxisAutoPlacement / XAxisAutoPlacement was not putting axes in right
position. In addition, when AutoAdjustMargins=True with several YAxis, after resize and
setting=YAxisAutoPlacement =OFF may put axes in wrong position. Now issue is fixed.
• With custom margins, change of X- or Y-axis count and visibility will not cause exception
In previous version (v12.2.1) some changes created the issue with custom ViewXY margins.
In particular, with custom margins, change of X- or Y-axis count or visibility was causing
exception (IndexOutOfRangeException). Now axes data is recalculated and rendered
properly.
• Fixed 'active area' for secondary YAxis
In previous version (v12.2.1) some changes created the issue with YAxisAutoPlacement /
XAxisAutoPlacement properties. In particular, when YAxesLayout.Layered some of YAxis
have been missing 'active area' (bounding rectangle around labels and ticks). Due to this it
was difficult to get Mouse events, pan axis with mouse etc. Now issue is fixed.
• Axes position properly calculated during resize with manual margins
In previous version (v12.2.1) some changes created the issue with AutoAdjustMargins and
chart resize. In particular, when AxisLayout.AutoAdjustMargins property is disabled and
chart is resized, the position of Axes was not updated correctly. Now issue is fixed.
• DateTime labels now can show more than 7 digits of the seconds fraction
Previously, when axis or DataCursor was trying to render DateTime value with more than 7
digits of the seconds fraction, chart was crashing. This situation may manifest, if user is
trying to zoom-in deeply. Now issue is fixed.
• ViewXY margins are updated when AutoSpaceLegendBoxes or legend.Position property
is changed
In previous version (v12.2.1) some changes created the issue with ViewXY margins. In
particular, margins were not updated when ViewXY.AutoSpaceLegendBoxes or
legend.Position property is changed. Now margins properly recalculated and rendered once
property is modified.
• Fixed IndexOutOfRangeException in IntensitySeriesBase.IsPositionOver method
Previously, if IntensityGridSeries was inivisble or have no Data, IndexOutOfRangeException
may be thorow. In particular, if IsPositionOver method directly, or indirectly (by clicking on
the chart). Issue is now fixed.
• EndPointLabels is taken into account in auto-margins calculation
Previous EndPointLabels maybe significantly wider than standard labels. Therefore,
(especially for side margins) not including its width in auto-margins calculation may lead to
more narrow margins and clipping of text of EndPointLabels. Now issue is fixed.
• Position and length of Axes is properly calculated after ViewXY.Margins property change
In previous version (v12.2.1) some changes created the issue with ViewXY.Margins. In
particular, when AxisLayout.AutoAdjustMargins property is disabled and Margins property
changed, the position and length of Axes was rendered incorrectly. Now issue is fixed.
Backwards compatibility breaks
Behavioral changes
• Refined chart export to vector format (EMF)
Refining chart export to vector format is ongoing process. As goal to make raster format
image and in vector format image (EMF, SVG) more similar, behavior (or look) of image
will be different from previous versions.