Esempio n. 1
0
        public static List <FrameworkElement> FindInTree(Visual parent, IFinderMatchVisualHelper helper)
        {
            List <FrameworkElement> list = new List <FrameworkElement>();

            WpfHelper.FindUpInTree(list, parent, null, helper);
            return(list);
        }
Esempio n. 2
0
        public static FrameworkElement SingleFindInTree(Visual parent, IFinderMatchVisualHelper helper)
        {
            helper.FindFirst = true;
            List <FrameworkElement> list = WpfHelper.FindInTree(parent, helper);

            if (list.Count > 0)
            {
                return(list[0]);
            }

            return(null);
        }
Esempio n. 3
0
        public static void FindUpInTree(List <FrameworkElement> lst, Visual parent, Visual ignore, IFinderMatchVisualHelper helper)
        {
            if (helper.DoesMatch(parent))
            {
                lst.Add((FrameworkElement)parent);
            }

            if (!(lst.Count > 0 && helper.FindFirst) && parent is FrameworkElement element)
            {
                FrameworkElement nParent = (FrameworkElement)element.Parent;
                if (nParent == null || nParent == element)
                {
                    nParent = (FrameworkElement)element.TemplatedParent;
                }

                if (nParent != null && nParent != element)
                {
                    WpfHelper.FindUpInTree(lst, nParent, element, helper);
                }
            }
        }
Esempio n. 4
0
 public static FrameworkElement FindElementOfTypeUp(Visual parent, Type ty) => WpfHelper.SingleFindInTree(parent, new FinderMatchType(ty));