我正在尝试使用部分NameProperty识别Windows静态文本控件。这是我的代码:
// Get a reference to the window
AutomationElement epoWindow = AutomationElement.RootElement.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.ClassNameProperty, "MsiDialog"));
// Get a reference to the control
AutomationElement epoControl = epoWindow.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.NameProperty, controlText));
我目前需要完整的controlText字符串才能使用,但我想搜索该字符串的一部分并返回找到的所有控件。 我该怎么做呢? 谢谢, 约翰
答案 0 :(得分:1)
您可以使用预定义的TrueCondition迭代子集合,如下所示:
foreach(AutomationElement child in epoWindow.FindAll(TreeScope.Subtree, Condition.TrueCondition))
{
if (child.Current.Name.Contains("whatever"))
{
// do something
}
}
PS:如果您不想杀死应用程序的性能(如果它具有较大的子级层次结构)或者无限期等待,您需要仔细选择TreeScope ...