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

时间:2011-11-20 14:16:44

标签: c# mschart

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

有没有办法解决这个问题?

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

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

以下内容应启用缩放:

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);

答案 2 :(得分:0)

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

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; 
}

这对我来说非常好。

你做了不同的事吗?