Visiblox Charts 2.0 released

The Visiblox team is happy to announce the release of Visiblox Charts v2.0. The free version with the documentation can be downloaded from the download page.

New Features

Lots of new features have been added to the charts since 1.9, including:

  • Premium version of Visiblox Charts for Windows Phone 7 - Following the beta release of Visiblox Charts for Windows Phone 7 in 1.9, we are now proud to announce the full availability of our premium edition component on the Windows Phone 7 platform.
  • Radar and Polar Charts - We've expanded the range of chart types supported by Visiblox Charts to include Radar and Polar charts. You can see some examples of these on our website: radial chart example and polar chart example.
  • New Stacking API - We've redesigned the way stacked charts are handled, now allowing stacking of line series, area series, staircase and spline series. Hundred percent stacked mode is supported, as well as placing multiple stacked series next to each other. Check out the examples section of our website for a look at the new stacked charts.
  • Spline Charts - We've introduced spline (or rounded curve) charts. These operate just like normal line series but provide curve smoothing with variable tension. Spline charts can be created using the SplineSeries class.
  • Automatic Series Construction Support - We've added functionality to support directly binding data sources to the chart and have it automatically create the chart series to display that data. For example, bind collections of domain objects and have the chart automatically generate a number of line series from those. Take a look at the AutoSeriesGenerator class for this new functionality.
  • Improved Core Component - In addition to the new features we've spent considerable time further improving existing features. Enhancements include memory optimisations, pixel snapping for sharper rendering on all platforms, better axis label positioning and alignment and more.

Why not download version 2.0 at and give it a spin?

Detailed Changelog

The detailed changes to the API from version 1.9.1to the current 2.0 version are the following.

  • Charts
    • ChartBase now implements the IDisposable interface
    • Added AllAxes property on Chart class
    • Renamed PieLegendPosition enum to LegendPosition
    • Renamed LegendPosition enum to ExtendedLegendPosition
    • PixelSnapper class added
    • Added public ZoomHelper and PanHelper classes
    • Radial Charts
      • Added interfaces: IChartSeriesCommon, IRadialAxis, IRadialAxisAware, IRadialChartSeries
      • Added classes: RadialChart, RadialAxisBase, RadialAxisEventRelay, RadialCategoryAxis, RadialChartSeriesBase, RadialChartSeriesBase, RadialLinearAxis, RadialLineSeries, RadialRenderPositionCalculator, RadialSeriesCollection
      • Added enums: RadialChartDrawingMode, RadialLabelPosition
  • Axes
    • AxisBase: added ShowAdditionalLabels property. Old ShowLabels property now only relates to regular tick labels.
    • Added IAxisCommon interface that has the following members: Range, ActualRange, Orientation, TItle, LabelFormatString, GetFormattedDataValue(), IsDataValueRenderable(), SetActualRange(), CreateRange()
    • IAxis now inherits from IAxisCommon. Removed the following member declarations from IAxis.
    • Added AxisCommonBasebase class which implements IAxisCommon and serves as a base class for Cartesian and radial axes
    • AxisBasenow inherits from AxisCommonBase
    • Removed AutoAssignedAxis class
    • DateTimeAxis now has protected method GetDateTimeKindFromRange
    • Method signature of AlignToInterval in DateTimeAxisInterval now requires an additional parameter specifying DateTimeKind
  • Series
    • Added interfaces IChartSingleSeries, IChartMultipleSeries, IOffsetProvider
    • Added classes ChartSeriesCommonBase, ChartMultipleSeriesBase
    • Added SplineSeries class
    • HlocSeries: renamed CentreLineWidth property to CentreLineWidthFraction
    • Introduced IChartSeriesCommon interface which defines members that both Cartesian and radial series implement. Members on this interface are XRange, YRange, DataSeries, DataSeriesCollectionChanged, NormalStyle, IsDisplayedOnLegend, IsPointRenderable(), GetPointRenderPosition(), IsDataSeriesValid(), GetFirstOrDefault(), Init() and DeInit()
    • Introduced ISelectableChartSeries with members SelectionMode, SelectedItem, SelectedItems, SelectionChanged
    • Added support for data binding by autogenerating IChartSeries. DefaultChartSeriesProvider, which implements the new interface IChartSeriesProvider is added. A StringToChartSeriesProvider Converter has been added. Class YValuePath has also been added.
    • DataSeries: added Add method
    • LineSeries: added protected methods CloseEndPointsAtBase and CloseEndPointsAtLine
      • Implements IOffsetProvider interface
      • GetOffsetPath has been renamed GetOffsetGeometry and returns a PathGeometry, rather than a PointCollection
      • BarStackingStyle and BarPositioning removed
    • Stacked series
      • Added interfaces IStackableChartSeries
      • Added classes StackedBarSeries, StackedColumnSeries, StackedLineSeries
      • Added enum StackingMode
      • Added interface IStackedOffsetProvider
      • Removed the BarStackingStyle.None enum value as functionality of this setting was equivalent to BarStackingStyle.SideBySide.
    • ChartSeriesCommonBase changes
      • Renamed protected methods: InitInternal() --> InitInternalBase(), DeInitInternal() --> DeInitInternalBase()
      • Removed XAxis, YAxis, GetPointRenderPosition(), AxisChanged(), AxisPropertyChanged
      • Changed method signatures by removing passing of the two IAxis parameters in IsPointRenderable(), UpdateDataPoint(), RemoveDataPoint(), AddDataPoint(), SelectBaseAxis()
      • Changed method signature in ResetMetadataOnConversionChange()
      • Added IsPointRenderableInternal(), UpdateSortedMetadata(), ComputeMinimumDistanceBetweenPoints() methods
      • Added bool property InvalidateRequestPending
      • Added method SelectBaseAxis that returns the base axis. BarSeries overrides this since the Y axis is the base axis there.
      • Changed method UseSearchMetadata - it now returns true unless overridden.
    • ChartSeriesBase changes
      • Implements IChartSeries (instead of IChartSingleSeries that it did previously)
      • Removed SelectionChanged, SelectedItems, XRange, YRange, EnablePointSelection(), EnableSeriesHighlighting(), UpdateSeriesHighlighting(), SetDpStylesOnStyle(), Highlight(), ClearSelectedItems(), MergeWith(), GetStyle(), RemoveSelectedItem(), RemoveSelectedItems(), RemoveOldSelectedPoints(), UpdateDataSeriesWithRanges(), InvalidateBase()
      • Added AxisPropertyChanged(), GetPointRenderPosition(), SelectBaseAxis(), IsPointRenderableInternal(), AreKeyPropertiesNull(), ComputeMinimumDistanceBetweenPoints(), AxisChanged(), InitInternalBase(), InitInternal(), DeInitInternalBase(), DeInitInternal(), UseSearchMetadata(),
      • Added CachedXAxis and CachedYAxis protected members
      • Removed the protected OnUnloadInternal() method
      • Added the public Dispose() method
    • ChartSeriesBase has been renamed to ChartSingleSeriesBase


  • Behaviours
    • ZoomBehaviour: added XZoomEnabled and YZoomEnabled properties. ZoomBehaviour.ZoomTo signature has changed.
    • PanBehaviour now extends BehaviourBase instead of BehaviourWithAxesBase. Added SetAxisRangesOnPanEnded property to PanBehaviour.
    • TrackballBehaviour: added HideTrackballsOnMouseLeave property
    • Trackball: added AutoRotate property. For bar and column charts this property determines whether the trackball will be auto-rotated for negative values.
    • ZoomAndPanGestureBehaviour: Renamed following properties: XZoomOutLimit -- > XZoomOutScaleLimit, YZoomOutLimit -- > YZoomOutScaleLimit, XZoomInLimit--> XZoomInScaleLimit, YZoomInLimit--> YZoomInScaleLimit. Added ZoomOutAnimationDuration property.
  • Ranges
    • Grow method in RangeBase is now virtual and overridden by DoubleRange
    • Added IRange.IsValueValid method to interface and all implementing classes
  • Annotations
    • Added HideCollidingAxisLabels property to HorizontalLineWithValueAnnotation and VerticalLineWithValueAnnotation



Post a comment