/// <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 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)
 {
 }