如何使用日期(DateTime格式)创建图表工具提示

Tho*_*ten 4 c# charts datetime data-visualization winforms

我找不到正确格式的提示

foreach (RootObject o in myRootObjects)
{ 
    seriesTemperatur.Points.AddXY(DateTime.Parse(o.datum), o.temp);               
    seriesPressure.Points.AddXY(DateTime.Parse(o.datum),  o.pressure);
}
Run Code Online (Sandbox Code Playgroud)

__

private void chart2_GetToolTipText(object sender, ToolTipEventArgs e)
{
    switch (e.HitTestResult.ChartElementType)
    {
        case ChartElementType.DataPoint:
            var dataPoint = e.HitTestResult.Series.Points[e.HitTestResult.PointIndex];
            e.Text = string.Format("Temperatur C:\t{1}\nData: {0}", dataPoint.XValue, dataPoint.YValues[0]);
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

作为dataPoint.XValue中的日期,我得到

dataPoint {{X=43459,6591203704, Y=3,19}}, 
Run Code Online (Sandbox Code Playgroud)

但是我需要X =“ 2018-11-22 HH:mm”。

var dataPoint = e.HitTestResult.Series.Points[e.HitTestResult.PointIndex];
e.Text = string.Format("Temperatur C:\t{1}\nData: {0}", dataPoint.XValue, dataPoint.YValues[0]);
Run Code Online (Sandbox Code Playgroud)

我得到:

dataPoint {{X = 43459,6591203704,Y = 3,19}} System.Windows.Forms.DataVisualization.Charting.DataPoint

AxisLabel为空

    AxisLabel   ""  string
Run Code Online (Sandbox Code Playgroud)

TaW*_*TaW 5

如果您将值添加为,DateTime并且您想要将其设置格式用于除Label(应该能够使用其Format字符串)以外的其他目的,则需要转换它们。如果您要执行其他处理(例如比较或过滤器等),则同样适用。

实际上,您添加的所有图表值始终会转换为double。因此,您需要使用转换功能FromOADate

var dataPoint = e.HitTestResult.Series.Points[e.HitTestResult.PointIndex];
DateTime dtx = DateTime.FromOADate(dataPoint.XValue);
e.Text = string.Format("Temperatur C:\t{1}\nData: {0}", dtx, dataPoint.YValues[0]);
Run Code Online (Sandbox Code Playgroud)