wpf – 页面上的某些控件对于MS UI Automation不可见
发布时间:2020-12-14 03:51:44 所属栏目:Windows 来源:网络整理
导读:我们有一个使用StartPage.xaml的应用程序,其中TabControl的控件模板定义了一些网格和堆栈面板.在xaml中间的模板中有一个itemPresenter,下面是一个堆栈面板.虽然它适用于用户,但MS UI自动化只能看到项目展示器内的选项卡项,而在模板中的同一级别上没有定义任
我们有一个使用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非常感谢那篇文章的作者! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows – 什么是系统状态备份?
- Windows Server 2016-安装AD域服务注意事项
- Windows 7 – 在Windows中设置每个进程的最大CPU使用量
- windows-server-2003 – 如何允许特定AD用户将计算机添加到
- Windows上使用AutoHotkey工具来切换用户执行命令
- windows – 如何使Process Explorer的功能“替换任务管理器
- windows-server-2008 – 我真的需要Exchange Server吗?
- windows-8 – 在创建新的WinRT视图时指定视图提供程序类型
- 跟踪Microsoft SQL Server数据库中的更改
- windows – 请求的操作需要提升
推荐文章
站长推荐
热点阅读