繁体   English   中英

添加Y轴最小值/最大值时无法放大MS图表

[英]Can't zoom in MSchart when adding the Y axis minimum / maximum

每当我向Yaxis添加最小值/最大值时(chart1.ChartAreas [0] .AxisY.Minimum&\\ chart1.ChartAreas [0] .AxisY.Maximum)我将失去放大图表的能力。

有办法解决这个问题吗?

有人知道缩放与最小/最大值相结合是否存在限制?

由于这里没有答案,但最近对该主题发表评论,我在寻找同一问题的答案时找到了这个帖子,这就是我发现的问题。

检查图表区域光标的Interval和IntervalType值。 可以启用缩放,但是您的间隔足够大,使用最小值/最大值,您的图表的整个范围都会小于您可以选择的间隔。

在我的情况下,我使用DateTime作为我的轴值类型,而我使用'自动'IntervalType我无法放大任何不到一天的时间 - 而我的图表仅覆盖10小时,因此缩放似乎被禁用。 我将IntervalType从'Auto'更改为'Seconds'(将Interval保持为1),这让我可以放大我需要的细节级别。

以下应启用缩放:

chart1.ChartAreas[0].CursorY.IsUserEnabled = true;
chart1.ChartAreas[0].CursorY.IsUserSelectionEnabled = true;
chart1.ChartAreas[0].AxisY.ScaleView.Zoomable = true;

在轴上设置最小值/最大值似乎确实阻止了用户选择的缩放。 我不确定您是要限制缩放还是提供初始缩放设置。 对于后者,请执行此操作,而不是在轴上使用min / ax:

chart1.ChartArea[0].AxisY.ScaleView.Zoom(min, max);

我无法验证问题。
如果我设置最小值/最大值,我仍然可以缩放图表,例如:

private void FillChart()
{
    var dt = new DataTable();
    dt.Columns.Add("X", typeof(double));
    dt.Columns.Add("Y", typeof(double));

    dt.Rows.Add(1, 3);
    dt.Rows.Add(2, 7);
    dt.Rows.Add(3, 2);
    dt.Rows.Add(4, 1);
    dt.Rows.Add(5, 5);
    dt.Rows.Add(6, 9);
    dt.Rows.Add(7, 0);

    this.chart1.Series.Clear();

    this.chart1.DataSource = dt;
    var series = this.chart1.Series.Add("MYSERIES");
    series.XValueMember = "X";
    series.YValueMembers = "Y";

    // set a custom minimum and maximum
    chart1.ChartAreas[0].AxisY.Minimum = -10;
    chart1.ChartAreas[0].AxisY.Maximum = 10;

    chart1.ChartAreas[0].CursorY.IsUserEnabled = true;
    chart1.ChartAreas[0].CursorY.IsUserSelectionEnabled = true;
    chart1.ChartAreas[0].AxisY.ScaleView.Zoomable = true; 
}

这对我来说非常好。

你做了不同的事吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM