C#图表控制系列由自定义标签覆盖
问题描述:
我使用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();
获得上鼠标指向的对象,在这里我找到了什么:
而不是显示的数据点,提示显示自定义标签上的文字。所以我想原因是曲线被x和y轴的标签所覆盖。
唯一的解决方案,我发现是禁用x和y轴,一切工作正常。但我想保留这些坐标轴,那么如何让这些标签隐藏在曲线下方。
答
您的分析可能是正确的。解决这个问题的方法是为HitTest()提供可选的第三个参数,它定义了所需的元素类型。
public HitTestResult HitTest (
int x,
int y,
ChartElementType requestedElement
)
即使其他元素与它们重叠,这也应返回基础数据点。
它的工作原理,谢谢 – 2012-04-25 12:35:29