internal static IEnumerable <DependencyObject> GetAncestors(DependencyObject depObj, bool self, TreeEnumerationStrategy strategy) { if (depObj == null) { yield break; } if (self) { yield return(depObj); } for (var parent = strategy.GetAncestor(depObj); parent != null; parent = strategy.GetAncestor(parent)) { yield return(parent); } }
public override DependencyObject GetAncestor(DependencyObject dependencyObject) { if (dependencyObject == null) { return(null); } if (_disconnectedTree) { var disconnectedParent = PresentationTreeUtils.GetDisconnectedParent(dependencyObject); if (disconnectedParent != null) { return(disconnectedParent); } } return(_firstStrategy.GetAncestor(dependencyObject) ?? _secondStrategy.GetAncestor(dependencyObject)); }
internal static DependencyObject GetParent(DependencyObject dependencyObject, TreeEnumerationStrategy strategy) { return(strategy.GetAncestor(dependencyObject)); }