UIAutomation - TransformPattern.Resize和Move使窗口消失

时间:2016-12-13 16:51:47

标签: c# microsoft-ui-automation

当我调用TransformPattern.Resize或TransformPattern.Move时,窗口消失。我仍然可以与窗口的AutomationElement进行交互,但无法在屏幕上看到它。 AutomationElement也反映了所做的更改。

当我使用Inspect时,相同的宽度/高度/ x / y值调整大小/移动很好(即窗口不会消失)。

我的代码:

DeleteUserRole(int roleId, UserInfo user, PortalSettings portalSettings, bool notifyUser);

DeleteUserRole(int userId, RoleInfo role, PortalSettings portalSettings, bool notifyUser);

DeleteUserRole(int portalId, int userId, int roleId);

(窗口的原始大小是(792,800))

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我们的团队在Windows上实现转换模式方法时遇到了同样的问题。

我无法在微软方面找到任何详细说明此问题的文档错误。

两种可能的解决方法。

1)你可以利用P / Invoke和SetWindowPos基本上伪造它,但得到相同的结果。

2)使用P / Invoke调用通过SetForegroundWindowShowWindow使窗口重新聚焦。

这两个选项都不是最佳选择,但它们为我们解决了问题,并允许消费者使用围绕P / Invoke调用的一些包装来移动和调整窗口大小。

还值得注意的是,TestStack.White开发者(我没有关联)遇到了同样的问题:https://github.com/TestStack/White/issues/205

希望这有帮助!