/// <summary>
        /// Initializes an instance of the extension to set the language property for an
        /// element to the current <see cref="ICultureManager.UICulture"/> property value.
        /// </summary>
        internal UICultureExtension(MarkupExtensionManager markupExtensionManager, ICultureManager cultureManager)
            : base(markupExtensionManager)
        {
            _cultureManager = cultureManager;

            WeakEventManager <ICultureManager, EventArgs> .AddHandler(_cultureManager, "UICultureChanged", cultureManager_UICultureChanged);
        }
        /// <summary>
        /// Initializes a new instance of the markup extension.
        /// </summary>
        internal LocalizeExtension(MarkupExtensionManager markupExtensionManager, ICultureManager cultureManager, string key)
            : base(markupExtensionManager)
        {
            _cultureManager = cultureManager;
            _key            = key;

            WeakEventManager <ICultureManager, EventArgs> .AddHandler(_cultureManager, "UICultureChanged", cultureManager_UICultureChanged);
        }
 /// <summary>
 /// Handles a change to the attached DefaultResxName property.
 /// </summary>
 /// <param name="element">The dependency object (a WPF element)</param>
 /// <param name="args">The dependency property changed event arguments</param>
 /// <remarks>In design mode, updates the extension with the correct ResxName</remarks>
 private static void OnDefaultResxNamePropertyChanged(DependencyObject element, DependencyPropertyChangedEventArgs args)
 {
     if (DesignerProperties.GetIsInDesignMode(element))
     {
         var applicableExtensions = MarkupExtensionManager.For <LocalizeExtension>(CleanupInterval).ActiveExtensions
                                    .OfType <LocalizeExtension>()
                                    .Where(extension => extension.IsTarget(element));
         foreach (var extension in applicableExtensions)
         {
             // Force the resource manager to be reloaded when the attached resx name changes.
             extension._resourceManager = null;
             extension._defaultResxName = args.NewValue as string;
             extension.UpdateTarget(element);
         }
     }
 }
 /// <summary>
 /// Initializes a new instance of the markup extension.
 /// </summary>
 /// <param name="key">The key used to get the value from the resources</param>
 public LocalizeExtension(string key)
     : this(MarkupExtensionManager.For <LocalizeExtension>(CleanupInterval), CultureManager.Default, key)
 {
 }
 /// <summary>
 /// Initializes a new instance of a markup extension.
 /// </summary>
 public ManagedMarkupExtension(MarkupExtensionManager manager)
 {
     manager.RegisterExtension(this);
 }
 /// <summary>
 /// Initializes an instance of the extension to set the language property for an
 /// element to the current <see cref="ICultureManager.UICulture"/> property value.
 /// </summary>
 public UICultureExtension()
     : this(MarkupExtensionManager.For <UICultureExtension>(2), CultureManager.Default)
 {
 }