C#Chart Control系列由自定义标签覆盖

时间:2012-04-23 12:32:59

标签: c# microsoft-chart-controls

我正在使用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();来获取鼠标所指向的对象时,我在这里找到了:

enter image description here

工具提示上的文字显示自定义标签,而不是显示数据点。所以我想原因是曲线被x和y轴的标签所覆盖。

我找到的唯一解决方案是禁用x和y轴,一切正常。但是我想保留这些轴,那么我怎样才能让这些标签隐藏在曲线之下。

1 个答案:

答案 0 :(得分:1)

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

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

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