0

C# チャート コントロールを使用してナイキスト プロットを描画しています。ここで、ユーザーがマウスを移動するたびに曲線上にデータ ポイントが表示されるようにします。そこで、GetToolTipText イベントでヒット テスト メソッドを使用しました。

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();マウスが指しているオブジェクトを取得するために使用する場合、ここで私が見つけたもの:

ここに画像の説明を入力

データ ポイントを表示する代わりに、ツールヒントのテキストにカスタム ラベルが表示されます。その理由は、曲線が x 軸と y 軸のラベルで覆われているためだと思います。

私が見つけた唯一の解決策は、x 軸と y 軸を無効にすることで、すべてが正常に機能します。しかし、これらの軸を保持したいので、これらのラベルを曲線の下に隠すにはどうすればよいですか。

4

1 に答える 1

1

あなたの分析はおそらく正しいでしょう。これを回避するには、目的の要素タイプを定義するオプションの 3 番目の引数を HitTest() に指定します。

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

これは、他の要素がそれらに重なっている場合でも、基になるデータ ポイントを返す必要があります。

于 2012-04-23T13:28:59.883 に答える