VisualTreeHelper.GetChildrenCount(DependencyObject) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回可视化树中对象的子集合中存在的子级数。
public:
static int GetChildrenCount(DependencyObject ^ reference);
static int GetChildrenCount(DependencyObject const& reference);
public static int GetChildrenCount(DependencyObject reference);
function getChildrenCount(reference)
Public Shared Function GetChildrenCount (reference As DependencyObject) As Integer
参数
- reference
- DependencyObject
源视觉对象。
返回
Int32
int
提供的源视觉对象的视觉对象子级数。
示例
下面是一个实用工具函数示例,该函数可以从可视化树中复制特定类型的子元素的列表。 它使用基本遍历方法 GetChildrenCount 和 GetChild。 它使用递归,以便无论中间容器中的嵌套级别如何,都可以找到元素。 它还使用 System.Reflection 中的 IsSubclassOf 扩展方法,该方法扩展了类型比较,以将子类型视为 Type 的匹配项。
internal static void FindChildren<T>(List<T> results, DependencyObject startNode)
where T : DependencyObject
{
int count = VisualTreeHelper.GetChildrenCount(startNode);
for (int i = 0; i < count; i++)
{
DependencyObject current = VisualTreeHelper.GetChild(startNode, i);
if ((current.GetType()).Equals(typeof(T)) || (current.GetType().GetTypeInfo().IsSubclassOf(typeof(T))))
{
T asType = (T)current;
results.Add(asType);
}
FindChildren<T>(results, current);
}
}