File tree Expand file tree Collapse file tree 1 file changed +37
-0
lines changed
Microsoft.Toolkit.Uwp.UI/Extensions Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change @@ -695,5 +695,42 @@ public static IEnumerable<DependencyObject> FindAscendants(this DependencyObject
695
695
element = parent ;
696
696
}
697
697
}
698
+
699
+ /// <summary>
700
+ /// Checks whether or not a given <see cref="DependencyObject"/> instance is a descendant of another one.
701
+ /// </summary>
702
+ /// <param name="child">The input child element.</param>
703
+ /// <param name="element">The element to look for in the ascendants hierarchy for <paramref name="child"/>.</param>
704
+ /// <returns>Whether or not <paramref name="child"/> is a descendant of <paramref name="element"/>.</returns>
705
+ public static bool IsDescendantOf ( this DependencyObject child , DependencyObject element )
706
+ {
707
+ while ( true )
708
+ {
709
+ DependencyObject ? parent = VisualTreeHelper . GetParent ( child ) ;
710
+
711
+ if ( parent is null )
712
+ {
713
+ return false ;
714
+ }
715
+
716
+ if ( parent == element )
717
+ {
718
+ return true ;
719
+ }
720
+
721
+ child = parent ;
722
+ }
723
+ }
724
+
725
+ /// <summary>
726
+ /// Checks whether or not a given <see cref="DependencyObject"/> instance is an ascendant of another one.
727
+ /// </summary>
728
+ /// <param name="parent">The input parent element.</param>
729
+ /// <param name="element">The element to look for in the descendants hierarchy for <paramref name="parent"/>.</param>
730
+ /// <returns>Whether or not <paramref name="parent"/> is an ascendant of <paramref name="element"/>.</returns>
731
+ public static bool IsAscendantOf ( this DependencyObject parent , DependencyObject element )
732
+ {
733
+ return IsDescendantOf ( element , parent ) ;
734
+ }
698
735
}
699
736
}
You can’t perform that action at this time.
0 commit comments