Pre loader

SciChart WPF v8.7 Released!

Categories

SciChart WPF v8.7 Released!

We’ve moved over to a new format for communicating our releases and updates of our popular WPF Charts library, by publishing a rolling changelog of every fix or enhancement in SciChart.

You can find the changelogs in the top menu at Developers -> Changelogs -> SciChart WPF ChangeLog

What’s New in v8.7 of SciChart’s WPF Charts?

This release (v8.7.0 build 28455) is a cumulative update with fixes and minor enhancements which is backward compatible to version 8.0 of SciChart WPF. It’s recommended for all users on v8.x to upgrade.

To find out what is new since v8.6, read on below:

  1. New Features
  2. Axis Type Comparison
  3. Key Features of IndexDateTimeAxis
  4. Other Improvements
  5. Bug Fixes
  6. Noteworthy Changes

New Features

SciChart v8.7 introduces two new Category Axis Types: IndexDateTimeAxis and IndexNumericAxis.

The IndexDateTimeAxis is an advanced hybrid axis type specifically designed for financial stock charts, forex, futures, and cryptocurrency markets. It seamlessly integrates the behaviors of both CategoryDateTimeAxis and DateTimeAxis into a single, more efficient solution, simplifying development and eliminating the need for complex workarounds in trading applications. 

IndexNumericAxis functions similarly but supports numeric x-values, allowing for broader use cases beyond time-series data. 

Axis Type Comparison

DateTimeAxis is a value axis, so it uses data values to measure distance. This makes it not suitable for financial markets like forex, stocks, or futures, where trading gaps exist due to overnight sessions and weekends. Using a DateTimeAxis would show gaps at weekends or overnight in trading which is not desirable in financial applcations. 

CategoryDateTimeAxis seeks to solve the problem by using the index of data values to space candles and bars equidistantly. This neatly solves the issue of collapsing gaps in financial data. However, there are some limitations:

  • All series must have the same number of points, leading to challenges with Moving Averages, which have fewer points than candlestick series. Users must manually prepend NaN (null points)
  • Annotations and Markers must be placed by index, not by date. Simple trade markers require manually calculating the index position 
  • Changing timeframes (e.g., switching from a daily to an hourly chart) requires recalculating all indexes and repositioning all annotations 
  • Even setting VisibleRange requires manual date-to-index conversions, adding significant overhead to the user application

IndexDateTimeAxis is the new solution. It solves the challenges of financial charts by:

  • Internally handling index-based calculations while allowing the user to work with data values (dates) directly
  • Allowing utilizing any DataSeries as a reference scale for all other series, or, optionally, an Array of values
  • Allowing VisibleRange to be set using dates rather than indexes
  • Enabling Annotations to be placed directly using chart coordinates (date values), eliminating the need for index-based placement
  • Handling automatic repositioning of Annotations when changing timeframes (e.g., switching from daily to hourly data)
  • Allowing multiple series with different numbers of points. This means Moving Averages no longer require additional NaN values, and indicators such as ZigZag or Oscillators can have more or fewer data points than the main OHLC or Candlestick series without issues

All of this happens transparently under the hood, making financial application development easier and more intuitive, as a single axis type can now be used across Forex, Cryptocurrency, Stock Market, and Futures data without unnecessary complexity. 

Other Improvements

  • MovingAverage Filter now correctly copies metadata from the original DataSeries. 
  • AxisMarkerAnnotation now flips text direction automatically when displayed on a PolarChart, if necessary. 
  • Added missing properties to IRenderableSeriesViewModel and CategoryAxisViewModel 
  • BaseDrawingProviderHelper has been marked as Obsolete, as it is no longer used 
  • Documentation updates

Bug Fixes

  • SC-8142: Fixed an issue where FastLineRenderableSeries incorrectly affected Y-Axis ranging when “DrawNanAs” was set with datasets containing NaN values
  • SC-8040: Fixed 1px-wide gaps appearing in Digital FastLineRenderableSeries at certain zoom levels
  • SC-8417: Fixed ZoomPanModifier.ClipAt mode behavior inconsistencies
  • SC-8273: Fixed resource disposal issues with native memory management
  • SC-8434: Fixed a native resource caching issue when manually switching to DirectX 9
  • SC-8353: Fixed an exception in the MovingAverage Filter when inserting data into a DataSeries
  • SC-8329: Fixed an exception in NumericAxis when handling unsigned data types
  • SC-8343: Fixed an exception when showing a Tooltip on a data point with ULong.MaxValue

Full list of changes for this and previous updates can be found at the SciChart WPF Changelog

Noteworthy Changes

  • Added a new TemplatePart to AxisMarkerAnnotation
  • VerticalSliceModifier.VerticalLines assigned as ContentProperty for improved usability
  • Updated default CursorTextFormatting for all types derived from NumericAxis: changed from “0.##” to “0.00” to maintain consistent label sizes and prevent resizing based on value length
  • Marked BaseDrawingProviderHelper as Obsolete, as it is no longer used

Where to get it

SciChart WPF v8.7 is available by:

  • Downloading the installer from our scichart.com/downloads page
  • Using Install-Package or Update-Package from NuGet
  • By cloning and compiling the examples source code on GitHub
  • By cloning or downloading the SciChart source code on GitHub (source code customers only)

Leaving Feedback

We welcome your feedback! Please let us know what you think about our new features, examples and improvements. You can contact our friendly, helpful team at any time!

By Joeri R | Feb 26, 2025

Leave a Reply