Exemple #1
0
        public void Traverse(DependencyObject root, Func <DependencyObject, VisualTraverseBehavior> filter, Action <DependencyObject> targetAction)
        {
            root.AssertParameterNotNull(nameof(root));

            filter       = filter ?? (o => VisualTraverseBehavior.Continue | VisualTraverseBehavior.TraverseChildren | VisualTraverseBehavior.Process);
            targetAction = targetAction ?? (o => { });

            TraversePrivate(root, filter, targetAction);
        }
Exemple #2
0
        public static bool IsVisualChildOf(this DependencyObject dependencyObject, DependencyObject ancestor)
        {
            dependencyObject.AssertNotNull(nameof(dependencyObject));
            ancestor.AssertParameterNotNull(nameof(ancestor));

            var parent = dependencyObject;

            while (true)
            {
                parent = parent.GetVisualParent();

                if (parent == ancestor)
                {
                    return(true);
                }

                if (parent == null)
                {
                    return(false);
                }
            }
        }