SciChart WPF 2D Charts > ChartModifier API > What is the ChartModifier API
What is the ChartModifier API

Within the SciChart SDK, ChartModifiers are the classes which can be added to a chart to give it a certain behaviour. For instance, all zooming, panning operations, tooltips, legends and even selection of points or lines are handled by ChartModifierBase derived classes in the SciChart codebase.

There are many different ChartModifiers provided by SciChart and each one deserves an article by itself! This article is concerned with simply giving an overview of the modifiers and where you can find the examples in our Examples Suite which demonstrate them.

There are also several individual articles on the ChartModifier's and how to configure them in the SciChart Documentation.

Multi-Axis Charts

In SciChart, each Axis within an Axis Collection must have a unique identifier, which is a string provided via the Axis.Id property. By default, axes are assigned a default Axis ID.

For charts with a single Axis, it is not necessary to set a custom Axis Id. However, when using a secondary Axis, it is important to assign unique IDs to all axes in the corresponding Axis Collection.

In scenarios involving multiple Axes, certain ChartModifiers, such as XAxisDragModifier, YAxisDragModifier, DataPointSelectionModifier, AnnotationCreationModifier, and SeriesValueModifier, need to be linked to a specific Axis. These modifiers have XAxisId and YAxisId properties that allow them to be associated with a particular X or Y Axis.

NOTE: By default, ChartModifiers requiring specific Axis association are linked to the X and Y Axes with the default axis ID. Once you explicitly set an Axis.Id for an Axis, ensure that any relevant ChartModifiers are appropriately associated by adjusting their XAxisId or YAxisId properties.

Zoom, Pan Modifiers

Modifier Name

Description

Demo Link

InertialZoomPanModifier

An experimentation implementation of ZoomPanModifier that includes Inertial panning

TouchScreenModifiers

MouseWheelZoomModifier

Zooms or pans the chart via the MouseWheel

Mousewheel Zoom

PinchZoomModifier

Zooms the chart via the Pinch-Zoom Multitouch Gesture

TouchScreenModifiers

RubberBandXyZoomModifier

Zooms after a rectangle or horizontal section is drawn on the chart via the mouse

Drag Area to Zoom

XAxisDragModifier

Zooms or pans a single XAxis via mouse-drag on the axis itself

Drag Axis to Scale

YAxisDragModifier

Zooms or pans a single YAxis via mouse-drag on the axis itself

Drag Axis to Scale

ZoomExtentsModifier

Resets the zoom to extents via Double-click

Digital Line Chart

ZoomPanModifier

Pans the chart in X, Y or both directions via mouse-drag

Pan on Mouse Drag

Interactivity, Cursor Modifiers

Modifier Name

Description

Demo Link

AnnotationCreationModifier

Creates user-editable annotations via mouse-click interactions

Create Annotations Dynamically

CursorModifier

Provides a crosshairs with X,Y Axis Labels and simple tooltip

Using CursorModifier Tooltips

DataPointSelectionModifier Allows selection of individual data-points via the PointMetadata API PointMarkers Selection

RolloverModifier

Provides a vertical slice cursor with tooltips plus datasource for custom legends

Rollover Feedback

SeriesSelectionModifier

Provides selection of series via mouse-clicks

Series Selection

ToolTipModifier

Provides Tooltips on the nearest series under the mouse suitable for use on Scatter Series and unsorted line series

Series Tooltips

VerticalSliceModifier

Provides multiple adjustable vertical lines which slice many series and provide tooltips about their Y-values

Series Vertical Slices

Miscelleneous Modifiers

Modifier Name

Description

Demo Link

LegendModifier

Provides a DataSource for the SciChartLegend control

Chart Legends

SeriesValueModifier

Provides Axis Markers labelling the latest Y-Value of a series

Realtime Series Values

ModifierGroup

Allows attaching several ChartModifiers to a single SciChartSurface and propagating mouse-events

Several, such as this on Multiple XAxis