如何用C#获取AutomationElement的LegacyIAccessible.State等LegacyIAccessibles? 就像工具中的 Inspect.exe 一样。
最佳答案
LegacyIAccessible
是新的,在 .NET 级别中不像 .NET 4.0 中那样可用。但是有一个project on CodePlex在 change set 38718 中有一个更新的实现添加了对此的支持。
请注意,您必须从源代码编译项目,不幸的是,最新的二进制版本太旧而无法包含此...
你想要做的是这样的:
if ((bool) child.GetCurrentPropertyValue(AutomationElementIdentifiers.IsLegacyIAccessiblePatternAvailableProperty)) {
var pattern = ((LegacyIAccessiblePattern) child.GetCurrentPattern(LegacyIAccessiblePattern.Pattern));
var state = pattern.GetIAccessible().accState;
// Do something with state...
}
源代码中的注释说这些是 Windows 7 的新功能,但我让它在 Windows XP SP3 上运行...
希望这对您有所帮助!
/阿兹
关于c# - Windows.Automation 中的 LegacyIAccessible,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6837935/