繁体   English   中英

对于MS UI Automation,页面上的某些控件不可见

[英]Some controls on a page are not visible for MS UI Automation

我们有一个使用StartPage.xaml的应用程序,其中TabControl的控件模板定义了一些网格和堆栈面板。 在xaml中间的模板中有一个itemPresenter,下面是一个堆栈面板。 虽然它适用于用户,但MS UI自动化只能看到项目展示器内的选项卡项,而在模板中的同一级别上没有定义任何其他内容。 我试图在堆栈面板中添加标准按钮,MS UIA无法查看该按钮是否存在与我们自定义用户控件相关的问题,但MS UIA也看不到该标准按钮。 如果我使用Snoop,我可以在模板层次结构的相应级别上的snoop树中看到模板中的所有元素。 但MS UIA仍然无法找到它们。

这些控件会阻止MS UIA在页面上找到它们会出现什么问题?

最后我能够发现问题。 TabControl模板化了许多不同的控件,而AutomationPeer保持不变,只知道TabItems为TabControl子项。 我将TabControl子类化并覆盖了OnCreateAutomation以创建并返回我的GenericAutomationPeer,它可以枚举此控件的所有子UIElements并且瞧 - UIA Verify现在可以看到来自TabControl模板的其他控件。

GenericAutomationPeer实现在这里找到: http//www.colinsalmcorner.com/2011/11/genericautomationpeer-helping-coded-ui.html非常感谢那篇文章的作者!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM