使用Windows.Automation,我可以通过正则expression式find一个AutomationElement?

我有一个对象树,有一个表父对象内的行对象。 我试图把所有这些行放入一个AutomationElementCollection

 AutomationElementCollection asdf = ParentTableObj.FindAll ( TreeScope.Children, new PropertyCondition ( AutomationElement.NameProperty, "I want to use regex here" ) ); 

所有行的AutomationElement.NameProperty包含string“row”。 但是,它们是该string的变体 – 例如“Row1”,“Row2”,“TopRow”,…

看起来好像我可能会遗漏一些东西,因为FindAll方法允许您定义TreeScope并查找与提供的Condition参数相匹配的任何AutomationElement 。 我只想让自己的条件不受限制,因为我已经可以通过TreeScope控制查找范围了。

Solutions Collecting From Web of "使用Windows.Automation,我可以通过正则expression式find一个AutomationElement?"

 //Example : AutomationElement element = FindFirstDescendant( AutomationElement.FromHandle(windows_hWnd), (ele)=>Regex.IsMatch( ele.Current.Name, pattern) ); //The generic method to find a descendant element: public static AutomationElement FindFirstDescendant(AutomationElement element, Func<AutomationElement, bool> condition) { var walker = TreeWalker.ControlViewWalker; element = walker.GetFirstChild(element); while (element != null) { if (condition(element)) return element; var subElement = FindFirstDescendant(element, condition); if (subElement != null) return subElement; element = walker.GetNextSibling(element); } return null; } 

正如文档所述 ,您可以要求进行不区分大小写的比较。 没有“正则表达式”标志。 您将不得不手动进行过滤。