예제 #1
0
        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);
 }