通过UI自动化框架访问我的WPF UserControl DependencyProperty值时遇到问题。
我使用了MSDN中的James文章作为起点(自动化McCaffreys应用中的IO测试,MSDN 2009年3月),但我只能在按钮等标准控件中看到属性等。
我假设我必须在我的UserControl上实现一些自动化接口,但是是什么以及如何实现呢?
我已经可以看到我的控件了,例如在UISpy中,但是我看不到它里面的依赖属性。下面是我的用户控件当前在UISpy中的样子:
AutomationElement常规辅助功能AccessKey:"“AcceleratorKey:"”IsKeyboardFocusable:“"False”“LabeledBy:”"(null)“HelpText:”“开关48v幻象电源打开/关闭(仅限麦克风输入)。”
状态IsEnabled:"True“HasKeyboardFocus:"False”
标识ClassName:"“ControlType:"”ControlType.Custom“区域性:”"(null)“AutomationId:”"V48SwL“”LocalizedControlType:“"custom”Name:“”ProcessId:“"5684 (VirtualSix)”“RuntimeId:”"7 5684 40026340“”IsPassword:“"False”“IsControlElement:”"True“”IsContentElement:“"True”
可见性BoundingRectangle:"(140,457,31,20)“ClickablePoint:"155,467”IsOffscreen:"False“
ControlPatterns
发布于 2010-03-12 20:31:12
没有办法从UI自动化获取任意的依赖属性值:您只能获取AutomationProperty值。
这个forum post说明在WPF的新版本中有一种方法可以添加您自己的自定义AutomationProperties,但是该版本的UIA还不受UIAutomation支持。
一个建议的解决方法是将您感兴趣的依赖属性绑定到AutomationProperties.ItemStatus附加属性:这将在AutomationElement.Current.ItemStatus中可用。
https://stackoverflow.com/questions/2410118
复制相似问题