コード例 #1
0
 // Token: 0x06000317 RID: 791 RVA: 0x00008AB4 File Offset: 0x00006CB4
 private static bool AreThereLoadedChangeHandlersInSubtree(ref FrameworkObject fo)
 {
     if (!fo.IsValid)
     {
         return(false);
     }
     if (fo.ThisHasLoadedChangeEventHandler)
     {
         return(true);
     }
     if (fo.IsFE)
     {
         Visual fe            = fo.FE;
         int    childrenCount = VisualTreeHelper.GetChildrenCount(fe);
         for (int i = 0; i < childrenCount; i++)
         {
             FrameworkElement frameworkElement = VisualTreeHelper.GetChild(fe, i) as FrameworkElement;
             if (frameworkElement != null && frameworkElement.SubtreeHasLoadedChangeHandler)
             {
                 return(true);
             }
         }
     }
     foreach (object obj in LogicalTreeHelper.GetChildren(fo.DO))
     {
         DependencyObject dependencyObject = obj as DependencyObject;
         if (dependencyObject != null && BroadcastEventHelper.SubtreeHasLoadedChangeHandlerHelper(dependencyObject))
         {
             return(true);
         }
     }
     return(false);
 }
コード例 #2
0
        // Token: 0x06000314 RID: 788 RVA: 0x00008A70 File Offset: 0x00006C70
        internal static void AddOrRemoveHasLoadedChangeHandlerFlag(DependencyObject d, DependencyObject oldParent, DependencyObject newParent)
        {
            bool flag = BroadcastEventHelper.SubtreeHasLoadedChangeHandlerHelper(d);

            if (flag)
            {
                if (oldParent == null && newParent != null)
                {
                    BroadcastEventHelper.AddHasLoadedChangeHandlerFlagInAncestry(newParent);
                    return;
                }
                if (oldParent != null && newParent == null)
                {
                    BroadcastEventHelper.RemoveHasLoadedChangeHandlerFlagInAncestry(oldParent);
                }
            }
        }