public static T FindParent <T>(DependencyObject startingObject, bool checkStartingObject, Func <T, bool> additionalCheck) where T : DependencyObject { T foundElement; DependencyObject parent = (checkStartingObject ? startingObject : TreeHelper.GetParent(startingObject, true)); while (parent != null) { foundElement = parent as T; if (foundElement != null) { if (additionalCheck == null) { return(foundElement); } else { if (additionalCheck(foundElement)) { return(foundElement); } } } parent = TreeHelper.GetParent(parent, true); } return(null); }
public static bool IsDescendantOf(DependencyObject element, DependencyObject parent, bool recurseIntoPopup) { while (element != null) { if (element == parent) { return(true); } element = TreeHelper.GetParent(element, recurseIntoPopup); } return(false); }
public static DependencyObject GetParent(DependencyObject element) { return(TreeHelper.GetParent(element, true)); }