因此,我试图通过单击图像来获取鼠标坐标,但它给出了错误的坐标。当我移动鼠标进行绘制时,线条出现在远离光标的位置。
这是我用来获取鼠标坐标的代码:

    private void ponaredek_MouseDown(object sender, MouseButtonEventArgs e)
    {
        mouseDown = true;
        //x1 = System.Windows.Forms.Control.MousePosition;
        x1 = new System.Drawing.Point((int)e.GetPosition(this).X, (int)e.GetPosition(this).Y);
    }

x1的类型为System.Drawing.Point(我需要来自绘图的点才能在emgucv中使用)。我必须做什么才能更正光标位置(我画了光标所在的位置)
c# - WPF C#错误的鼠标坐标-LMLPHP

最佳答案

您想要获取鼠标相对于Image元素而不是Window的位置。所以更换

e.GetPosition(this)

通过
e.GetPosition((IInputElement)sender)

要么
e.GetPosition(ponaredek)

如果那是Image元素。

它看起来应该像这样:
var pos = e.GetPosition((IInputElement)sender);
x1 = new System.Drawing.Point(pos.X, pos.Y);

还要确保将Image元素的Stretch属性设置为None

10-06 11:16