Zooming And Panning

The [ObservableObject], [ObservableProperty] and [ICommand] attributes come from the CommunityToolkit.Mvvm package, you can read more about it here.

This web site wraps every sample using a ContentPage instance, but LiveCharts controls can be used inside any container.

sample image

Zooming and panning is disabled by default, you can enable it by setting the ZoomMode property, this property is of type LiveChartsCore.Measure.ZoomAndPanMode (enum) and the options are X, Y, Both and None (default), you can learn more about zooming an panning here.

In touch devices, pinch the screen in/out to zoom, hold tap and drag to move the view (panning).

View model

using System;
using CommunityToolkit.Mvvm.ComponentModel;
using LiveChartsCore;
using LiveChartsCore.SkiaSharpView;

namespace ViewModelsSamples.Lines.Zoom;

public partial class ViewModel : ObservableObject
    public ViewModel()
        var values = new int[100];
        var r = new Random();
        var t = 0;

        for (var i = 0; i < 100; i++)
            t += r.Next(-90, 100);
            values[i] = t;

        SeriesCollection = new ISeries[] { new LineSeries<int> { Values = values } };

    public ISeries[] SeriesCollection { get; set; }


<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
            Series="{Binding SeriesCollection}"

Articles you might also find useful: