首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取坐标相对于鼠标位置的位置?

如何获取坐标相对于鼠标位置的位置?
EN

Stack Overflow用户
提问于 2016-07-15 23:54:38
回答 1查看 157关注 0票数 1

我在Wpf上,我有一个坐标列表,我在位图图像上绘制它们。我的位图文件是1000 * 1000,它被填充到680 * 440图像控件中。现在我要做的是,当鼠标悬停在我的图像上时,突出显示鼠标光标附近的坐标。

MouseMove()事件处理程序上,我调用此函数并将我相对于图像控件的鼠标位置传递给它:

代码语言:javascript
复制
public void HighLightNearbyDots(Point MousePosition)
{
    int Distance;
    CoordPoint temp = new CoordPoint();
    temp.X = MousePosition.X;
    temp.Y = MousePosition.Y;

    foreach (var point in myDisplayedCoords)
    {
        Distance = (int)(temp - point); // using subtraction operator that I wrote

        if (Distance < 10)
        {
            point.Color = Colors.Blue;
        }
        else
        {
            point.Color = InitialCoordColor; // Aqua
        }
    }

    DrawImage();
}

是的,我在每次调用时都会重新绘制图像,以反映这些更改。也许问题是我需要缩放或计算1000 * 1000文件大小和680 * 440控件大小之间的某个比率,以命中确切的像素。但我不确定问题出在哪里。下面是当前的结果,从早上开始就让我痛苦不已。有人能帮我解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-16 01:52:06

基于这个How to scale a coordinate system?,现在我们知道了这个等式。然后我这样使用它:

代码语言:javascript
复制
int Distance;
CoordPoint temp = new CoordPoint();
temp.X = MousePosition.X / 660 * Bitmap.Width;
temp.Y = Bitmap.Height - (MousePosition.Y / 440 * Bitmap.Height); // y is flipped

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38400410

复制
相关文章

相似问题

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