using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Runtime.CompilerServices; using System.Windows; using System.Windows.Media; namespace Gestor.Common.Helpers { public class FindVisualChildren { public FindVisualChildren() { } public static IEnumerable Find(DependencyObject depObj) where T : DependencyObject { if (depObj != null) { for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++) { DependencyObject dependencyObject = VisualTreeHelper.GetChild(depObj, i); if (dependencyObject != null && dependencyObject is T) { yield return (T)dependencyObject; } foreach (T t in FindVisualChildren.Find(dependencyObject)) { yield return t; } dependencyObject = null; } } } } }