因此,我试图通过单击图像来获取鼠标坐标,但它给出了错误的坐标。当我移动鼠标进行绘制时,线条出现在远离光标的位置。
这是我用来获取鼠标坐标的代码:
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中使用)。我必须做什么才能更正光标位置(我画了光标所在的位置)
最佳答案
您想要获取鼠标相对于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
。