图表中的命中测试是指能够在鼠标下获取有关图表对象的信息并允许您创建交互式应用程序的功能。例如,当鼠标悬停在特定数据点上时,此功能可用于显示特殊的自定义工具提示。同样,您甚至可以使用命中测试信息来向下钻取图表数据,设置警报并启用其他用户交互功能。
FlexChart通过FlexChart类提供HitTest方法, 以获取有关基础图表对象的信息。此方法具有以下两个重载,并返回HitTestInfo类的对象,该对象 提供信息,例如指针下的图表元素,距最近数据点的距离,最近数据点的索引等。
- HitTest (Point)
- HitTest(Point,MeasureOption,Int32)
若要使用此方法来获取信息,您需要订阅一个鼠标事件,在该鼠标事件上要获取信息,然后在其事件处理程序中调用HitTest方法。然后,您可以按要求的方式使用此信息。在本主题所示的示例中,我们获取了有关鼠标移动的图表对象的信息,并将其显示在图表下方的信息面板中。
CS
private void FlexChart1_MouseMove(object sender, MouseEventArgs e) { //显示图表在鼠标光标下的有关元素的信息 var hitInfo = flexChart1.HitTest(e.Location); var result1 = new StringBuilder(); if (hitInfo != null) { result1.AppendLine(string.Format("Chart element: {0}", hitInfo.ChartElement)); if (hitInfo.Series != null) result1.AppendLine(string.Format("Series name: {0}", hitInfo.Series.Name)); if (hitInfo.PointIndex >= 0) result1.AppendLine(string.Format("Point index= {0:0}", hitInfo.PointIndex)); _lInfo1.Text = result1.ToString(); var result2 = new StringBuilder(); if (hitInfo.Distance > 0) result2.AppendLine(string.Format("Distance= {0:0}", hitInfo.Distance)); if (hitInfo.X != null) result2.AppendLine(string.Format("X= {0:0}", hitInfo.X)); if (hitInfo.Y != null) result2.AppendLine(string.Format("Y= {0:p}", hitInfo.Y)); _lInfo2.Text = result2.ToString(); } }