Как увеличить масштаб программно? - PullRequest
0 голосов
/ 28 августа 2018

Я работаю над возможностью увеличения, нажимая на кнопку, точно так же, как я могу с помощью прокрутки мыши. Я попытался установить MinValue и MaxValue для оси X, но когда я делаю это, масштабирование с помощью мыши прокручивается и перестает обновлять MinValue и MaxValue. Как я могу увеличить, не нарушая масштаб прокрутки мыши?

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>

1 Ответ

0 голосов
/ 09 сентября 2018

Я понял это. Я должен был установить 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>
...