wpf - Teststack.White拖放问题

标签 wpf c#-4.0 automated-tests white-framework

我无法将控件拖动到另一个控件。我已经成功地选择了两个控件,但是当我尝试使用时:

Mouse.Instance.Location = dragControl.ClickablePoint;
Mouse.LeftDown();

Mouse.Instance.Location = dropControl.ClickablePoint;
Mouse.LeftUp();

拖动没有发生,鼠标移动。但是控件停留在初始位置。

我也尝试过使用:

Mouse.Instance.DragAndDrop(dragItem, dragItem.ClickablePoint, dropItem, dropItem.ClickablePoint);

仍然没有运气。

我正在做一些实验和一点并让它工作,但我已经忘记了我之前找到一个可行解决方案的资源(我删除了我的工作代码 - 经验教训)。

如有任何帮助,我们将不胜感激!

提前致谢!

6/15 更新

好的,所以我一直在努力解决这个问题。出于某种原因,似乎控件实际上并未被拖动。鼠标在移动,但控件没有随之移动。

最佳答案

好吧,我不知道为什么 White DragAndDrop 功能不起作用(或手动使用 leftDown、move、leftUp)。

但我确实找到了解决方案。

基本上我重新编写了白色的拖放功能,每一步之间都有一个延迟。所以它看起来像下面这样:

guiObject.Click();
Mouse.LeftDown();

var stepCount = 10;
var stepAmount = (float) (guiObject.ClickablePoint.Y - targetObject.ClickablePoint.Y)/stepCount;

for (var i = 0; i < stepCount; i++)
{
    Mouse.Instance.Location = new Point(Mouse.Instance.Location.X, Mouse.Instance.Location.Y - stepAmount);
    Thread.Sleep(75); // I played around with the values and 75 seems to work without being too slow
}

Mouse.LeftUp();

希望这对可能遇到此问题的其他人有所帮助。我不知道为什么我需要强制延迟,但它有效。

关于wpf - Teststack.White拖放问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30792634/

相关文章:

c#-4.0 - 这是从域模型中实例化具有依赖关系的对象的正确方法吗?

javascript - 如何从后面的代码中传递 JavaScript 函数中的自定义字符串?

automated-tests - 是否有任何自动化浏览器测试工具支持 iOS 和 Android 浏览器?

python - 列表理解中的测试和断言

动态创建 PHPUnit 数据提供者

c# - WPF 中的多拖放——示例/示例/教程?

wpf - Application.Resources与Window.Resources中的隐式样式?

wpf - 如何在 WPF 的特定一侧添加投影?

c# - DataGrid RowDetails 中的按钮需要两次单击,解决方法会中断双击

LINQ 'join' 需要等于,但我想使用 'contains'