public static void SetApplyMode(FrameworkElement element, ImplicitStylesApplyMode value)
 {
     if (element == null)
     {
         throw new ArgumentNullException("element");
     }
     element.SetValue(ApplyModeProperty, value);
 }
        /// <summary>
        /// ApplyModeProperty property changed handler.
        /// </summary>
        /// <param name="dependencyObject">FrameworkElement that changed its
        /// ApplyMode.</param>
        /// <param name="eventArgs">Event arguments.</param>
        private static void OnApplyModePropertyChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs eventArgs)
        {
            FrameworkElement element = dependencyObject as FrameworkElement;

            if (element == null)
            {
                throw new ArgumentNullException("dependencyObject");
            }

            ImplicitStylesApplyMode oldMode = (ImplicitStylesApplyMode)eventArgs.OldValue;
            ImplicitStylesApplyMode newMode = (ImplicitStylesApplyMode)eventArgs.NewValue;

            ImplicitStyleManager.SetHasBeenStyled(element, false);

            EventHandler eventHandler = ImplicitStyleManager.GetLayoutUpdatedHandler(element);

            // If element is automatically styled (once or always) attach event
            // handler.
            if ((newMode == ImplicitStylesApplyMode.Auto || newMode == ImplicitStylesApplyMode.OneTime) &&
                oldMode == ImplicitStylesApplyMode.None)
            {
                if (eventHandler == null)
                {
                    eventHandler =
                        (sender, args) =>
                    {
                        ImplicitStyleManager.PropagateStyles(element, false);
                    };

                    ImplicitStyleManager.SetLayoutUpdatedHandler(element, eventHandler);
                    element.LayoutUpdated += eventHandler;
                }
            }
            else if ((oldMode == ImplicitStylesApplyMode.Auto || oldMode == ImplicitStylesApplyMode.OneTime) &&
                     newMode == ImplicitStylesApplyMode.None)
            {
                if (eventHandler != null)
                {
                    element.LayoutUpdated -= eventHandler;
                    ImplicitStyleManager.SetLayoutUpdatedHandler(element, null);
                }
            }
        }
Esempio n. 3
0
 /// <summary>
 /// Initializes a new instance of the Theme class.
 /// </summary>
 private Theme()
 {
     // Default the ApplyMode to OneTime
     ApplyMode = ImplicitStylesApplyMode.OneTime;
 }
 public static void SetApplyMode(FrameworkElement element, ImplicitStylesApplyMode value)
 {
     if (element == null)
     {
         throw new ArgumentNullException("element");
     }
     element.SetValue(ApplyModeProperty, value);
 }
Esempio n. 5
0
 /// <summary>
 /// Initializes a new instance of the Theme class.
 /// </summary>
 private Theme()
 {
     // Default the ApplyMode to OneTime
     ApplyMode = ImplicitStylesApplyMode.OneTime;
 }