Zooming And Panning
Zooming and panning is disabled by default, you can enable it by setting the ZoomMode
property, this property is of type
ZoomAndPanMode and the options are:
X
: Enables zooming and panning on the X axis.Y
: Enables zooming and panning on the Y axis.Both
: Enables zooming and panning on both axes.None
: Disables zooming and panning.PanX
: Enables panning on the X axis.PanY
: Enables panning on the Y axis.ZoomX
: Enables zooming on the X axis.ZoomY
: Enables zooming on the Y axis.
The ZoomAndPanMode type is a flag enum,
so you can combine the options, for example, if you want to enable zooming on the X axis and panning on the Y axis you can
set the ZoomMode
property to ZoomAndPanMode.ZoomX | ZoomAndPanMode.PanY
.
There is also the InvertPanningPointerTrigger
flag, when this flag is present the panning will be triggered using
the right click on desktop devices and the touch-and-hold gesture on touch devices, the zoom by section
feature will be
triggered to the left click on desktop devices and the touch-and-hold gesture on touch devices.
You can learn more about zooming an panning here.
In desktop, use the mouse wheel to zoom in/out, hold click 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; }
}
using Eto.Forms;
using LiveChartsCore.SkiaSharpView.Eto;
using ViewModelsSamples.Lines.Zoom;
namespace EtoFormsSample.Lines.Zoom;
public class View : Panel
{
private readonly CartesianChart cartesianChart;
public View()
{
var viewModel = new ViewModel();
cartesianChart = new CartesianChart
{
Series = viewModel.SeriesCollection,
ZoomMode = LiveChartsCore.Measure.ZoomAndPanMode.X // mark
};
Content = cartesianChart;
}
}