SciChart WPF 2D Charts > ChartModifier API > Zooming And Panning > ZoomPanModifier
ZoomPanModifier

The ZoomPanModifier provides dragging the SciChartSurface to pan the chart.

Declaring a ZoomPanModifier in XAML

Declaring a ZoomPanModifier
Copy Code
<!-- where xmlns:s="http://schemas.abtsoftware.co.uk/scichart" -->
<s:SciChartSurface>
   <s:SciChartSurface.ChartModifier>
      <s:ModifierGroup>
            <s:ZoomPanModifier XyDirection="XyDirection" ClipModeX="None"
                               ZoomExtentsY="False"/>
         </s:ModifierGroup>
   </s:SciChartSurface.ChartModifier>
</s:SciChartSurface>

Declaring a ZoomPanModifier in Code

Declaring a ZoomPanModifier
Copy Code
var sciChartSurface = new SciChartSurface();
sciChartSurface.ChartModifier = new ModifierGroup(new ZoomPanModifier());

Key Properties of the ZoomPanModifier

The key Dependency Properties of the ZoomPanModifier are listed below:

Key Properties of the ZoomPanModifier
Copy Code
/// <summary>
/// The <see cref="ZoomPanModifier"/> provides a mouse drag to pan the X and Y axes.
/// Add to a <see cref="SciChartSurface"/> and set IsEnabled to true to enable this behaviour
/// </summary>
public class ZoomPanModifier : ZoomPanModifierBase
{
   /// <summary>
   /// If true, zooms to extents on the Y-Axis on each zoom operation when panning in
   /// X-Direction. Use in conjuction with <see cref="ZoomPanModifierBase.XyDirection"/>
   /// to achieve different zooming effects
   /// </summary>
   public static bool ZoomExtentsYProperty = DependencyProperty.Register(...);
  
   /// <summary>
   /// Defines the direction of the ZoomPanModifier
   /// </summary>
   public XyDirection XyDirectionProperty = DependencyProperty.Register(...);

   /// <summary>
   /// Defines how panning behaves when you reach the edge of the X-Axis extents.
   /// e.g. ClipMode.ClipAtExtents prevents panning outside of the X-Axis,
   /// ClipMode.None allows panning outside
   /// </summary>
   public ClipMode ClipModeXProperty = DependencyProperty.Register(...);

   /// <summary>
   /// Determines when the <see cref="ZoomPanModifier"/> executes,
   /// e.g. <see cref="ChartModifiers.ExecuteOn.MouseLeftButton"/> will cause a
   /// zoom pan on mouse left button drag of the parent <see cref="SciChartSurface"/>
   /// </summary>
   public ExecuteOn ExecuteOnProperty = DependencyProperty.Register(...);

   // …
}

 

Excluding one or more Axis from a ZoomPanModifier Pan Operation

It is possible to exclude one or more axis from a ZoomPanModifier Pan operation using the Attached Property ZoomPanModifier.IncludeAxis. By default this property is true (all axis are panned).

To enable or disable this on a per-axis basis, use the following code:

XAML
Excluding one or more Axis from a ZoomPanModifier Pan Operation
Copy Code
<!-- where xmlns:s="http://schemas.abtsoftware.co.uk/scichart" -->
<s:SciChartSurface>

   <s:SciChartSurface.YAxes>
      <s:NumericAxis />   
      <s:NumericAxis Id="SecondaryYAxis" s:ZoomPanModifier.IncludeAxis="False"/>
   </s:SciChartSurface.YAxes>
  
   <s:SciChartSurface.XAxis>
      <s:NumericAxis />
   </s:SciChartSurface.XAxis>
  
   <s:SciChartSurface.ChartModifier>
      <s:ModifierGroup>
         <s:ZoomPanModifier ClipModeX="None"/>
      </s:ModifierGroup>
   </s:SciChartSurface.ChartModifier>
</s:SciChartSurface>
CODE
Excluding one or more Axis from a ZoomPanModifier Pan Operation
Copy Code
var axis = new NumericAxis();
ZoomPanModifier.SetIncludeAxis(axis, false);

See Also