[英]What is the best possible method to set the position of Mouse Pointer in WPF using C#
我当前正在使用SetCursorPos(int x, int y)
来设置Cursor在Canvas上的位置。 这是我的代码,它从文本框中获取逗号分隔的坐标,并进行一些转换以将其相对于我的Canvas进行转换。
if (e.Key == Key.Enter)
{
string[] s = setcoordinatesTB.Text.Split(", ".ToCharArray());
if (s.Length != 2) return;
int x,y;
bool r1 = int.TryParse(s[0], out x);
bool r2 = int.TryParse(s[1], out y);
if (!(r1 && r2)) return;
Point rel = canvas.TranslatePoint(new Point(x, y), window);
SetCursorPos( x + (int)window.Left + 10 + (int)rel.X, y + (int)window.Top + 32 + (int)rel.Y);
}
奇怪的事情在这里发生。.瞬间之前一切正常。.(我有另一个文本框,它使用e.GetPosition(canvas)
连续显示相对于Canvas的光标坐标)。 并键入所需的鼠标坐标。 然后按Enter键,两个文本框都显示相同的坐标(应该是)。 但是现在 ,当我键入任何坐标时。 并按Enter键,它将变成应有的两倍。 例如,在输入100,100时,我的光标将移至200,200(在第二个框中显示)。 我将值除以2进行调整,但随后光标移到了另一个我无法解释的怪异位置。
PS :如果有更好,更可靠的方法来设置游标的位置(即使有很多麻烦的话),也请发布。
那么,第一个最明显的问题是-在“片刻之前”和现在之间发生了什么变化? 计算机软件通常不更改某些内容就不会更改其输出。
但是为了帮助您调试,请尝试以下方法:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.