如何以编程方式放大?

How to zoom in programmatically?

我正在研究通过单击按钮进行放大的功能,就像使用鼠标滚动一样。我尝试为 X 轴设置 MinValueMaxValue,但是当我这样做时,使用鼠标滚动进行缩放会损坏并停止更新 MinValueMaxValue。如何在不破坏鼠标滚动缩放的情况下进行放大?

private double? _minX;
public double? MinX {
    get => _minX;
    set => SetValue(ref _minX, value);
}

public void ZoomIn()
{
    if (MinX == null || MaxX == null)
        return;

    MaxX -= 1000;
    MinY = null;
    MaxY = null;
}

而我的观点:

<Button Content="+" Width="25" Height="25" Margin="2" cal:Message.Attach="[Event Click] = [ZoomIn()]"></Button>
<lvc:CartesianChart Series="{Binding SeriesCollection}" Zoom="X" Pan="X">
    <lvc:CartesianChart.AxisX>
        <lvc:Axis MinValue="{Binding MinX, FallbackValue=0}" MaxValue="{Binding MaxX, FallbackValue=100}" 
                  LabelFormatter="{Binding FormatterX}"></lvc:Axis>
    </lvc:CartesianChart.AxisX>
</lvc:CartesianChart>

我明白了。我必须为轴设置 Mode=TwoWay

<lvc:CartesianChart.AxisX>
    <lvc:Axis MinValue="{Binding MinX, Mode=TwoWay}" MaxValue="{Binding MaxX, Mode=TwoWay}" 
              LabelFormatter="{Binding FormatterX}"></lvc:Axis>
</lvc:CartesianChart.AxisX>