首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在图表控件中获取鼠标指针附近的可视/框架元素

如何在图表控件中获取鼠标指针附近的可视/框架元素
EN

Stack Overflow用户
提问于 2012-02-09 03:37:08
回答 1查看 222关注 0票数 1

我正在开发一个自定义控件,它可以在上面绘制曲线,并允许用户通过单击它来更改曲线的属性。现在捕获曲线上的事件本身是非常困难的,因为它们可能非常薄(根据用户需求)

不知何故,我想增加曲线的命中选择。我有一个解决方案,但它真的很昂贵,因为我的图表中有大量的曲线。这就是为什么我在寻找一种逻辑,通过它我可以找到鼠标指针周围的有限曲线。

我尝试了HitTest(),但没有任何帮助。我在谷歌上搜索了很多,但没有收获。

如果有人能在这个话题上发现一些亮点,并建议我一个正确的方向,那么这将是一个很大的帮助。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-27 23:44:50

您必须自己实现此功能。您可以做的是监听底层行的MouseEnter/MouseLeave,如果在初始MouseEnter/Leave的特定半径内按下鼠标,则将其视为命中。

例如,在伪代码中:

代码语言:javascript
复制
OnMouseEnter()
{
    this.hittestPoint = currentMousePoint;
}

OnMouseLeave()
{
    this.hitTestPoint = currentMousePoint;
}

OnMouseDown()
{
    // Looking for mousedown within a 5 pixel radius of the line. 
    // Increase/decrease according to experimentation
    const double radius = 5;

    // Note see Euclidean distance for distance between vectors
    // http://en.wikipedia.org/wiki/Euclidean_distance
    double deltaX = (hitTestPoint.X - currentPoint.X);
    double deltaY = (hitTestPoint.Y - currentPoint.Y);
    double distance = Math.Sqrt(deltaX*deltaX + deltaY*deltaY);

    if(distance < radius) 
    {
         // Hittest detected!
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9200194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档