gpt4 book ai didi

c# - 在 Visiblox 图表中平移或缩放后自动缩放轴

转载 作者:太空宇宙 更新时间:2023-11-03 16:43:04 26 4
gpt4 key购买 nike

我有一个 Visiblox 折线图,它允许在 X 轴(但不是 Y 轴)上缩放和平移。在缩放或平移到图表的特定区域后,我希望仅根据可见数据重新计算 YAxis 范围和刻度。我尝试在 YAxis 上设置 AutoScaleToVisibleData="True",但这不起作用,因为缩放和平移不设置 XAxis.Range,并且必须更改 XAxis.Range 才能使 YAxis 的 AutoScaleToVisibleData 属性生效。

编辑

我现在正在尝试使用 IAxis.AdoptZoomAsRange() 函数,但似乎无法弄明白。相关示例代码如下:

XAML:

<charts:Chart Name="chart">
<charts:Chart.Behaviour>
<charts:BehaviourManager AllowMultipleEnabled="True">
<charts:PanBehaviour IsEnabled="True" YPanEnabled="False" PanEnded="PanBehaviour_PanEnded" />
<charts:ZoomBehaviour IsEnabled="True" YZoomEnabled="False" AnimationEnabled="False" ZoomMode="MouseWheel" ZoomEnded="ZoomBehaviour_ZoomEnded" />
</charts:BehaviourManager>
</charts:Chart.Behaviour>
<charts:Chart.XAxis>
<charts:DateTimeAxis />
</charts:Chart.XAxis>
<charts:Chart.YAxis>
<charts:LinearAxis AutoScaleToVisibleData="True" />
</charts:Chart.YAxis>
</charts:Chart>

代码隐藏:

public MainWindow()
{
InitializeComponent();

DataSeries<DateTime, double> dataSeries = new DataSeries<DateTime, double>();
for (int i = 0; i < 100; i++)
dataSeries.Add(new DataPoint<DateTime, double>(DateTime.Now.AddMonths(i), i));

LineSeries lineSeries = new LineSeries();
lineSeries.DataSeries = dataSeries;
chart.Series.Add(lineSeries);
}

private void PanBehaviour_PanEnded(object sender, EventArgs e)
{
chart.YAxis.AdoptZoomAsRange();
}

private void ZoomBehaviour_ZoomEnded(object sender, EventArgs e)
{
chart.YAxis.AdoptZoomAsRange();
}

最佳答案

IAxis 上的 AdoptZoomAsRange 方法可能是您正在寻找的 - 有一个可下载的示例,它用于此 blog post希望这应该使这一点更清楚。

[披露:我在 Visiblox 上工作]

关于c# - 在 Visiblox 图表中平移或缩放后自动缩放轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6851298/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com