2012-04-23 66 views
0

我使用C#圖表控件繪製nyquist圖。現在我希望每次用戶在其上移動鼠標時都會在曲線上顯示數據點。所以我在GetToolTipText事件中使用了hit測試方法。C#圖表控制系列由自定義標籤覆蓋

private void BodePlot_GetToolTipText(object sender, ToolTipEventArgs e) 
     { 
      HitTestResult result = BodePlot.HitTest(e.X, e.Y); 
      selectDataPoint = null; 

      if (result.ChartElementType == ChartElementType.DataPoint) 
       { 
        selectDataPoint = (DataPoint)result.Object; 
        e.Text = selectDataPoint.ToString(); 
       } 
     { 

問題只是曲線的一部分顯示值,其他的不是。當我使用e.Text = result.Object.ToString();獲得上鼠標指向的對象,在這裏我找到了什麼:

enter image description here

而不是顯示的數據點,提示顯示自定義標籤上的文字。所以我想原因是曲線被x和y軸的標籤所覆蓋。

唯一的解決方案,我發現是禁用x和y軸,一切工作正常。但我想保留這些座標軸,那麼如何讓這些標籤隱藏在曲線下方。

回答

1

您的分析可能是正確的。解決這個問題的方法是爲HitTest()提供可選的第三個參數,它定義了所需的元素類型。

public HitTestResult HitTest (
int x, 
int y, 
ChartElementType requestedElement 
) 

即使其他元素與它們重疊,這也應返回基礎數據點。

+0

它的工作原理,謝謝 – 2012-04-25 12:35:29