2011-03-06 13 views

答えて

2

コントロールがUserControlVisual Treeの一部である場合は、そのコントロールのすべてのビジュアル子をリストできます。そして、そのロジックを拡張メソッドでラップすることができます。

VisualTreeHelperクラスを使用できます。

2

このachiveが容易である:(this SO questionからコード)

public static IEnumerable<T> FindVisualChildren<T>(DependencyObject depObj) where T : DependencyObject 
{ 
    if (depObj != null) 
    { 
     for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++) 
     { 
      DependencyObject child = VisualTreeHelper.GetChild(depObj, i); 
      if (child != null && child is T) 
      { 
       yield return (T)child; 
      } 

      foreach (T childOfChild in FindVisualChildren<T>(child)) 
      { 
       yield return childOfChild; 
      } 
     } 
    } 
} 
関連する問題