VisualTreeHelper.GetChild(DependencyObject, Int32) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
使用提供的索引,通过检查可视树来获取所提供对象的特定子对象。
public:
static DependencyObject ^ GetChild(DependencyObject ^ reference, int childIndex);
static DependencyObject GetChild(DependencyObject const& reference, int const& childIndex);
public static DependencyObject GetChild(DependencyObject reference, int childIndex);
function getChild(reference, childIndex)
Public Shared Function GetChild (reference As DependencyObject, childIndex As Integer) As DependencyObject
参数
- reference
- DependencyObject
保存子集合的 对象。
- childIndex
-
Int32
int
引用子集合中请求的子对象的索引。
返回
childIndex 引用的子对象。
示例
下面是一个实用工具函数示例,该函数可以从可视化树中复制特定类型的子元素的列表。 它使用基本遍历方法 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);
}
}