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