如何以编程方式放大?
How to zoom in programmatically?
我正在研究通过单击按钮进行放大的功能,就像使用鼠标滚动一样。我尝试为 X
轴设置 MinValue
和 MaxValue
,但是当我这样做时,使用鼠标滚动进行缩放会损坏并停止更新 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>
我明白了。我必须为轴设置 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>
我正在研究通过单击按钮进行放大的功能,就像使用鼠标滚动一样。我尝试为 X
轴设置 MinValue
和 MaxValue
,但是当我这样做时,使用鼠标滚动进行缩放会损坏并停止更新 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>
我明白了。我必须为轴设置 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>