首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pan或Visiblox图放大后的自动标度轴

pan或Visiblox图放大后的自动标度轴
EN

Stack Overflow用户
提问于 2011-07-27 21:10:52
回答 1查看 1.7K关注 0票数 2

我有一个Visiblox线图,它允许在XAxis (但不是YAxis)上缩放和平移。在缩放或平移到图表的特定区域后,我希望只根据可见数据重新计算YAxis范围和滴答值。我试着在AutoScaleToVisibleData=上设置YAxis“True”,但是这不起作用,因为缩放和平移不设置XAxis.Range,XAxis.Range必须更改才能使YAxis的AutoScaleToVisibleData属性产生效果。

编辑

我现在正在尝试使用IAxis.AdoptZoomAsRange()函数,但似乎找不到它。相关示例代码如下:

XAML:

代码语言:javascript
复制
<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>

代码隐藏:

代码语言:javascript
复制
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();
}
EN

回答 1

Stack Overflow用户

发布于 2011-08-01 13:33:56

AdoptZoomAsRange方法在IAxis上可能就是您所要寻找的--在这个博客帖子中使用了一个可下载的示例,希望它能使这一点更加清晰。

披露:我在Visiblox工作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6851298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档