如何在C#中使用ZedGraph从PointPair获取X轴的日期时间?

时间:2012-11-28 08:10:06

标签: c# zedgraph

我能够使图形X轴以DateTime格式显示,但是当鼠标指向曲线项目时,我无法获得日期时间,PointPair只返回double的数据。我如何得到约会?

myPane.XAxis.Type = AxisType.Date;
myPane.XAxis.Scale.Min = new XDate(DateTime.Now);  // We want to use time from now
myPane.XAxis.Scale.Max = new XDate(DateTime.Now.AddMinutes(5));  // to 5 minutes per default
myPane.XAxis.Scale.MinorUnit = DateUnit.Second;         // set the minimum x unit to time/seconds
myPane.XAxis.Scale.MajorUnit = DateUnit.Minute;         // set the maximum x unit to time/minutes
myPane.XAxis.Scale.Format = "T";

以下是功能

private string MyPointValueHandler(ZedGraphControl control, GraphPane pane, CurveItem curve, int iPt)
{
        // Get the PointPair that is under the mouse
        PointPair pt = curve[iPt];

        if( curve.Label.Text == "Temperature" )
            return curve.Label.Text + " is " + pt.Y.ToString("f2") + " ºC at " + pt.X.ToString("f2");
        else
            return curve.Label.Text + " is " + pt.Y.ToString("f2") + " % at " + pt.X.ToString("f2");

}

我想得到的结果如下:温度是23ºC,时间是下午4:20:12

1 个答案:

答案 0 :(得分:1)

    PointPair pt = curve[iPt];
    XDate the_date = new XDate(pt.X);

    if( curve.Label.Text == "Temperature" )
        return curve.Label.Text + " is " + pt.Y.ToString("f2") + " ºC at " + the_date.DateTime;
    else
        return curve.Label.Text + " is " + pt.Y.ToString("f2") + " % at " + the_date.DateTime;