次の方法で共有


VisualTreeHelper.GetChildrenCount(DependencyObject) メソッド

定義

ビジュアル ツリー内のオブジェクトの子コレクションに存在する子の数を返します。

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 を使用します。 再帰を使用して、中間コンテナー内の入れ子のレベルに関係なく要素を見つけることができます。 また、Type の一致としてサブタイプを考慮するように型比較を拡張する System.ReflectionIsSubclassOf 拡張メソッドも使用します

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);
    }
}

適用対象