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

您的分析可能是正确的。解决此问题的方法是为 HitTest() 提供可选的第三个参数,该参数定义所需的元素类型。

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

即使其他元素与它们重叠,这也应该返回基础数据点。

于 2012-04-23T13:28:59.883 回答