Beispiel #1
0
        private static void FrameworkElement_Initialized(object sender, EventArgs e)
        {
            FrameworkElement frameworkElement = (FrameworkElement)sender;

            frameworkElement.Initialized -= new EventHandler(FreezeBehavior.FrameworkElement_Initialized);
            ResourceDictionary resources = frameworkElement.Resources;

            if (resources != null)
            {
                FreezeBehavior.FreezeResources(resources);
            }
        }
Beispiel #2
0
 public static void FreezeResources(ResourceDictionary resources)
 {
     object[] objArray = new object[resources.Keys.Count];
     resources.Keys.CopyTo(objArray, 0);
     object[] objArray1 = objArray;
     for (int i = 0; i < (int)objArray1.Length; i++)
     {
         Freezable item = resources[objArray1[i]] as Freezable;
         if (item != null && item.CanFreeze)
         {
             item.Freeze();
         }
     }
     foreach (ResourceDictionary mergedDictionary in resources.MergedDictionaries)
     {
         FreezeBehavior.FreezeResources(mergedDictionary);
     }
 }
Beispiel #3
0
        private static void FreezeBehavior_FreezeResourcesPropertyChanged(DependencyObject target, DependencyPropertyChangedEventArgs e)
        {
            if (!(bool)e.NewValue)
            {
                return;
            }
            ResourceDictionary      resources               = null;
            FrameworkElement        frameworkElement        = target as FrameworkElement;
            FrameworkContentElement frameworkContentElement = target as FrameworkContentElement;

            if (frameworkElement != null)
            {
                if (frameworkElement.IsInitialized)
                {
                    resources = frameworkElement.Resources;
                }
                else
                {
                    frameworkElement.Initialized += new EventHandler(FreezeBehavior.FrameworkElement_Initialized);
                }
            }
            else if (frameworkContentElement != null)
            {
                if (frameworkContentElement.IsInitialized)
                {
                    resources = frameworkContentElement.Resources;
                }
                else
                {
                    frameworkContentElement.Initialized += new EventHandler(FreezeBehavior.FrameworkContentElement_Initialized);
                }
            }
            if (resources != null)
            {
                FreezeBehavior.FreezeResources(resources);
            }
        }