我目前正在使用SetCursorPos(int x, int y)
在我的画布上设置光标的位置。这是我的代码,它从文本框中获取逗号分隔的坐标,并进行一些翻译以将其相对于我的画布进行转换。
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)
)。并在键入所需的鼠标坐标时。&按回车键,两个文本框都显示相同的坐标(应该是)。但是现在,当我输入任何坐标时。&按回车,它变成了它应该的两倍。即在输入 100,100 时,我的光标转到 200,200(显示在第二个框中)。我将这些值除以 2 进行调整,但随后,光标转到了另一个我无法解释的奇怪位置。
PS:如果有更好,更可靠的方法来设置光标的位置(即使它有很多相关的麻烦),请发布。