2012-04-23 7 views
0

私はナイキストプロットを描画するためにC#グラフコントロールを使用しています。今私は、データポイントは、ユーザーがそれの上にマウスを移動するたびに曲線に表示したい。だから私はGetToolTipTextイベントでヒットテストメソッドを使用しました。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

あなたの分析は正しいと思われます。これを回避する方法は、希望の要素タイプを定義するオプションの第3引数をHitTest()に与えることです。

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

これは、他の要素が重なっていても、基礎となるデータポイントを返します。

+0

ありがとう、ありがとう –

関連する問題