Exemple #1
0
        // Private Extension for DependencyObject
        // Return the first child of a given type, and passing the Checker delegate
        private static TT ChildOfType <TT>(this DependencyObject element, Predicate <TT> checker) where TT : DependencyObject
        {
            if (element == null)
            {
                return(null);
            }

            if (element is ContentControl)
            {
                DependencyObject child = (element as ContentControl).Content as DependencyObject;
                TT childFound          = child.ChildOfTypeSearch(checker);
                if (childFound != null)
                {
                    return(childFound);
                }
            }

            for (int i = 0; i < VisualTreeHelper.GetChildrenCount(element); i++)
            {
                DependencyObject child = VisualTreeHelper.GetChild(element, i);
                TT childFound          = child.ChildOfTypeSearch(checker);
                if (childFound != null)
                {
                    return(childFound);
                }
            }

            return(null);
        }