我使用了VisualTree
帮助程序来获取窗口中的所有视觉效果,但有时某些控件未在返回列表中列出。那是因为它们仍然没有被渲染,据我所知,VisualTree
只有当控件已经被渲染时,枚举才会有所帮助。
现在我正在尝试编写一个简单的递归方法,它将在一个窗口中列出所有逻辑对象,以便我可以在它们被渲染之前对其进行操作。
所以这是我第一次尝试为逻辑树创建这样的东西:
public static List<DependencyObject> ListLogical( DependencyObject parent )
{
var depList = new List<DependencyObject>();
foreach ( var child in LogicalTreeHelper.GetChildren( parent ).OfType<DependencyObject>() )
{
depList.AddRange( ListLogical( child ) );
}
return depList;
}