0

我需要生成鼠标按下、鼠标移动和最后鼠标向上事件来实现一个拖动框,该拖动框根据框的大小执行计算。

我已经研究了 3 种方法来实现这一点:

  1. TestStack.White - 我可以在 UI 上执行 Click() 和 DragAndDrop() 操作,但似乎无法执行 MouseDown、MouseMove 和 MouseUp
  2. 按照此处的建议引发鼠标事件如何在 WPF/C# 中使用特定坐标引发鼠标事件?这里的问题是我无法模拟 MouseDevice(或从它继承)所以我看不到任何设置所需坐标的方法
  3. 使用InputSimulator执行点击: inputSimulator.Mouse.LeftButtonDown(); inputSimulator.Mouse.MoveMouseBy(5, 3); inputSimulator.Mouse.LeftButtonUp(); 问题是在单元测试中使用时这似乎会触发任何事情

理想情况下,我会包装鼠标并作为依赖项传入(所以我可以使用 Moq 模拟它),但我认为这是不可能的,因此我试图生成鼠标事件。

我想我在这里想要完成的是能够设置 MouseDevice 的鼠标坐标,以便我可以在我正在测试的 UserControl 上引发事件,但我不确定这是否可能..

有什么办法可以使这项工作?

4

1 回答 1

0

尝试使用:

MouseDevice mouseDev = InputManager.Current.PrimaryMouseDevice;
于 2021-12-29T13:34:16.627 回答