【问题标题】:Zooming & selection not working for C# chart with x-axis of the type Time缩放和选择不适用于时间类型为 x 轴的 C# 图表
【发布时间】:2012-07-19 14:06:49
【问题描述】:

我正在使用以下代码来选择和缩放我的图表部分:

chart1.ChartAreas[0].CursorX.IsUserEnabled = true;
chart1.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
chart1.ChartAreas[0].AxisX.ScaleView.Zoomable = true;
chart1.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = true;

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

它适用于具有整数类型的 x 和 y 轴的图表。

但是当我将series值类型设置为series1.XValueType = ChartValueType.Time;时,我将无法放大x轴。

当我将两个轴值类型都设置为自动并使用例如chart1.Series[0].Points.AddXY(DateTime.Now.ToLongTimeString(), rand.Next(10, 20)); 添加点时,缩放就会起作用。

我怎样才能让我的 x 轴成为时间并且仍然能够缩放?

【问题讨论】:

    标签: c# .net mschart


    【解决方案1】:

    您需要将光标上的间隔默认设置为 1.0,我遇到了百分比问题,所以我将间隔设置为 0.01,例如 1%,如下所示。您想在 Cursor 上设置 IntervalType,因为它接受日期时间类型。

    chart1.ChartAreas[0].CursorX.Interval = 0.01
    

    更多信息http://msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization.charting.cursor.interval%28v=vs.100%29.aspx

    【讨论】:

      【解决方案2】:

      您的缩放很可能不起作用,因为您的测试时间值彼此太接近。缩放必须能够从用户选择中选择起点和终点。如果 start == end,则比例视图的合理行为是什么都不做。

      【讨论】:

      • 谢谢!这就是正在发生的事情。由于每个点之间的差异是一秒,我没有足够的点需要缩放。当我使用 1 天作为每个点之间的差异进行测试时,它起作用了。现在我必须检查是否可以将比例设置为秒或分钟而不是天。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-05
      • 1970-01-01
      相关资源
      最近更新 更多