目的:
顯示圖表特定位置的X與Y值。
- 顯示圖點之XY值
/// <summary>
/// Chart Event: GetToolTipText,於ToolTips顯示圖點的XY值
/// 參考: http://www.blueshop.com.tw/board/FUM20050124191756KKC/BRD20110829075354ZPT.html
/// </summary>
private void chart_GetToolTipText(object sender, ToolTipEventArgs e)
{
if (e.HitTestResult.ChartElementType == ChartElementType.DataPoint)
{
DataPoint myPoint = (DataPoint)(e.HitTestResult.Object);
e.Text = "X value: " + myPoint.XValue + Environment.NewLine;
e.Text += "Y value: " + myPoint.YValues[0] + Environment.NewLine;
}
}
- 顯示滑鼠位置之XY值
/// <summary>
/// Chart ToolTips顯示滑鼠位置之XY值
/// 參考: http://stackoverflow.com/questions/9647666/finding-the-value-of-the-points-in-a-chart
/// </summary>
Point? prevPosition = null;
ToolTip tooltip = new ToolTip();
private void chart_MouseMove(object sender, MouseEventArgs e)
{
var pos = e.Location;
if (chart.Series.Count == 0 || (prevPosition.HasValue && pos == prevPosition.Value) )
return;
tooltip.RemoveAll();
prevPosition = pos;
var results = chart.HitTest(pos.X, pos.Y, false, ChartElementType.PlottingArea);
foreach (var result in results)
{
if (result.ChartElementType == ChartElementType.PlottingArea)
{
var xVal = result.ChartArea.AxisX.PixelPositionToValue(pos.X);
var yVal = result.ChartArea.AxisY.PixelPositionToValue(pos.Y);
tooltip.Show("X=" + xVal + ", Y=" + yVal, chart,
pos.X, pos.Y - 15);
}
}
}
廣告