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


Demo Link


An experimentation implementation of ZoomPanModifier that includes Inertial panning



Zooms or pans the chart via the MouseWheel

Mousewheel Zoom


Zooms the chart via the Pinch-Zoom Multitouch Gesture



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

Drag Area to Zoom


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

Drag Axis to Scale


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

Drag Axis to Scale


Resets the zoom to extents via Double-click

Digital Line Chart


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

Pan on Mouse Drag

Interactivity, Cursor Modifiers

Modifier Name


Demo Link


Creates user-editable annotations via mouse-click interactions

Create Annotations Dynamically


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


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

Rollover Feedback


Provides selection of series via mouse-clicks

Series Selection


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

Series Tooltips


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

Series Vertical Slices

Miscelleneous Modifiers

Modifier Name


Demo Link


Provides a DataSource for the SciChartLegend control

Chart Legends


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

Realtime Series Values


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

Several, such as this on Multiple XAxis