我有一个Visiblox线图,它允许在XAxis (但不是YAxis)上缩放和平移。在缩放或平移到图表的特定区域后,我希望只根据可见数据重新计算YAxis范围和滴答值。我试着在AutoScaleToVisibleData=上设置YAxis“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();
}发布于 2011-08-01 13:33:56
AdoptZoomAsRange方法在IAxis上可能就是您所要寻找的--在这个博客帖子中使用了一个可下载的示例,希望它能使这一点更加清晰。
披露:我在Visiblox工作
https://stackoverflow.com/questions/6851298
复制相似问题