public IEnumerable<ResourceDictionary> LoadResources() { // All resources are loaded from ResroucesDictionary All.xaml located in this assembly var all = ResourcesManager.LoadCompiledResourceDictionaryFromThisAssembly(@"Xaml\All.xaml"); yield return all; var data_template_selectors = new SharedResourceDictionary { UniqueName = "Foundation.DataTemplateSelectors" }; data_template_selectors.Add("DataTemplateSelectors.TypeNameToResourceKey", new TypeNameToResourceKeyMappingDataTemplateSelector()); data_template_selectors.Add("DataTemplateSelectors.ContextAware", new ContextAwareDataTemplateSelector()); data_template_selectors.Add("DataTemplateSelectors.ContextAware.Tooltip", new ContextAwareDataTemplateSelector { IsTooltip = true }); yield return data_template_selectors; }
static bool TryFindSharedDictionaryByName(ResourceDictionary searchOrigin, string dictionaryName, out SharedResourceDictionary dict) { if (searchOrigin is SharedResourceDictionary) { var sd = (SharedResourceDictionary)searchOrigin; if (string.Equals(sd.UniqueName, dictionaryName, StringComparison.InvariantCultureIgnoreCase)) { dict = sd; return true; } } foreach (var d in searchOrigin.MergedDictionaries) { if (TryFindSharedDictionaryByName(d, dictionaryName, out dict)) return true; } dict = null; return false; }
public static bool TryGetSharedDictionary(string uniqueName, out SharedResourceDictionary dict) { return NameToDictionaryMappings.TryGetValue(uniqueName, out dict); }
public static void AddOrUpdateSharedDictionary(SharedResourceDictionary dict) { NameToDictionaryMappings.AddOrUpdate(dict.UniqueName, dict, (_key, _old) => dict); }