1 //----------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation. All rights reserved.
3 //----------------------------------------------------------------
5 namespace System.Activities.Presentation
8 using System.Collections.Generic;
12 using System.Windows.Markup;
14 [MarkupExtensionReturnType(typeof(ResourceDictionary))]
15 public class CachedResourceDictionaryExtension : MarkupExtension
17 static Dictionary<Uri, ResourceDictionary> Cache = new Dictionary<Uri, ResourceDictionary>();
19 public Uri Source { get; set; }
21 public override object ProvideValue(IServiceProvider serviceProvider)
23 ResourceDictionary resourceDictionary = null;
24 // disable caching till the wpf mergedictionaries in theme dictionary bug is fixed.
25 if (!Cache.TryGetValue(this.Source, out resourceDictionary))
27 resourceDictionary = new ResourceDictionary();
28 resourceDictionary.Source = this.Source;
29 Cache.Add(this.Source, resourceDictionary);
31 return resourceDictionary;