在测试中模拟 WPF 中的鼠标移动

本文关键字:鼠标 移动 模拟 测试 WPF | 更新日期: 2023-09-27 18:36:28

我有一个 WPF 和 C# 项目,我想从用户的角度以编程方式测试一些悬停事件。我可以继续手动触发用户悬停时发生的事件,但在我这样做之前,我想知道是否可以模拟鼠标移动并将其放在屏幕上的代码上的某个位置,然后继续并触发 MouseMove(或任何适当的)事件从可视化树中冒泡。

在测试中模拟 WPF 中的鼠标移动

我知道

这是一个很老的问题,但希望它可以帮助将来遇到它的任何人。

要将其放在任何控件的可单击位置(主要是中间):

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

我不确定是否有办法模拟鼠标移动,但您可以通过编程方式移动鼠标:

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替换为所需的控件即可。

希望这有帮助!