首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用谓词条件搜索元素

使用谓词条件搜索元素
EN

Stack Overflow用户
提问于 2012-07-24 17:31:52
回答 3查看 135关注 0票数 0

如何通过谓词在VisualTree中找到框架元素?大概是这样的:

代码语言:javascript
复制
public static FrameworkElement FindChild(FrameworkElement root, Predicate<> predicate)
{
   ...
}

我打算这样使用它:

代码语言:javascript
复制
Button btn = FindChild(MainForm, element => element is Button);

提前感谢您的帮助!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-24 17:50:46

您可以使用LINQ来查找特定类型的控件,可能如下所示:

代码语言:javascript
复制
List<Button> btns = Controls.OfType<Button>().ToList();
票数 1
EN

Stack Overflow用户

发布于 2012-07-24 17:40:56

因此,真正的问题是如何遍历给定"root“元素的所有子元素。因为这样您就可以调用该元素的谓词,并选择所需的谓词。所以我认为你应该在这里区分两个不同的工作流-一个-当元素是Panel时,你应该首先传递它,然后迭代它的should属性并传递其中的每一个(递归和非递归都可以,但你应该深入到树中,并在两种情况下都通过级别返回)。在非面板元素的情况下,只需将该元素传递给谓词。此外,您还应该考虑具有" content“属性的元素(我想这是在某个基类型中定义的,我不记得是哪个基类型了),所以以同样的方式检查content元素。仅此而已。

问候你,Artak

票数 1
EN

Stack Overflow用户

发布于 2012-07-24 17:36:08

Answers to this SO question描述了在可视化树中查找控件的许多方法。

谓词版本在那里作为到this的链接给出。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11627981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档