我有一个 WPF 和 C# 项目,我想从用户的角度以编程方式测试我拥有的一些悬停事件。我可以继续并手动触发用户悬停时发生的事件,但在此之前,我想知道是否可以模拟鼠标移动并将其从代码中放置在屏幕上的某个位置,然后继续并触发沿着视觉树冒泡的 MouseMove(或任何适当的)事件。
问问题
3013 次
2 回答
2
我知道这是一个相当古老的问题,但希望它可以帮助将来遇到它的任何人。
把它放在任何控件的可点击位置(主要是中间):
window.Mouse.Location = item.ClickablePoint; //using specific item
或者,与@3aw5TZetdf 对 Cursor.Position 所做的类似,您可以将其设置为相对于当前位置或指定新位置的特定位置:
var point = window.Mouse.Location;
window.Mouse.Location = new Point(point.X - 200, p.Y - 200); // New location using current one. Replace 200 with your desire value
window.Mouse.Location = new Point(200, 200) // new location
于 2017-10-11T10:00:25.253 回答
0
我不确定是否有模拟鼠标移动的方法,但您可以通过编程方式移动鼠标:
Cursor.Position = new Point(x, y); // x and y are integers that form a point
或者,如果您希望它转到控件的中间:
Cursor.Position = new Point(this.Location.X + button1.Location.X + button1.Width / 2,this.Location.Y + button1.Location.Y + button1.Height);
只需替换button1
为您想要的控件即可。
希望这可以帮助!
于 2012-06-05T21:30:04.373 回答