根据MSDN上的代码示例(http://msdn.microsoft.com/en-us/library/hh552522.aspx),您需要从控件中获取的任何自定义属性数据都应使用AccessibleObject
Description
中的分号分隔字符串属性。这根本不适合我。这似乎只是一个快速而肮脏的技巧,让它工作。从自定义控件获取属性值的正确方法是什么?如果这实际上是你应该怎么做的话,那么你应该如何使用SetPropertyValue
方法设置这些属性?上面链接中的示例只会在NotImplementedException
中抛出SetPropertyValue
。
答案 0 :(得分:1)
由于IAccessible
接口只有有限数量的属性,最好的解决方案是将任何额外信息塞进Description
属性(这就是他们在我工作的公司和我们的开发人员所做的事情)不要工作快速和肮脏:))。要修改此属性的返回值,您必须在控件上实现Iaccessible
接口。或者,因为您只想修改Description
属性,您只需要修改该属性并将其余属性留给代理(我不确定它是如何工作的,但在MSDN上有它的教程)。 / p>
SetPropertyValue
中的UITestPropertyProvider
方法适用于UItestControl
。通过覆盖它,您可以修改CUIT在播放期间与控件交互的方式。例如,如果为Text属性覆盖SetPropertyValue
,则可以更改CUIT将字符串键入控件的方式。