每当我向Yaxis添加最小值/最大值时(chart1.ChartAreas [0] .AxisY.Minimum& \ chart1.ChartAreas [0] .AxisY.Maximum)我放弃了放大图表的能力。
有没有办法解决这个问题?
是否有人知道缩放与最小/最大值相结合是否有限制?
答案 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;
}
这对我来说非常好。
你做了不同的事吗?