Exemplo n.º 1
0
        public static StyleGroup[] GetStyleSheetBuilders(string themeName)
        {
            if (string.IsNullOrEmpty(themeName))
            {
                themeName = ThemeResolutionService.ControlDefaultThemeName;
            }
            ArrayList res = new ArrayList();

            foreach (DictionaryEntry dictionaryEntry in ThemeResolutionService.registeredBuildersDefaultByElementType)
            {
                ThemeResolutionService.TripleNameKey key = (ThemeResolutionService.TripleNameKey)dictionaryEntry.Key;
                if (string.Compare(key.Name2, themeName, true) == 0)
                {
                    StyleGroup builder = (StyleGroup)dictionaryEntry.Value;
                    BuilderRegistrationType regType = BuilderRegistrationType.ElementTypeDefault;
                    string name3       = key.Name3;
                    string controlType = (string)null;
                    string elementName = (string)null;
                    string controlName = (string)null;
                    ThemeResolutionService.AddBuilderToList(res, builder, regType, name3, controlType, elementName, controlName);
                }
            }
            foreach (DictionaryEntry dictionaryEntry in ThemeResolutionService.registeredBuildersByElementTypeControlType)
            {
                ThemeResolutionService.TripleNameKey key = (ThemeResolutionService.TripleNameKey)dictionaryEntry.Key;
                if (string.Compare(key.Name3, themeName, true) == 0)
                {
                    StyleGroup builder = (StyleGroup)dictionaryEntry.Value;
                    BuilderRegistrationType regType = BuilderRegistrationType.ElementTypeControlType;
                    string name2       = key.Name2;
                    string name1       = key.Name1;
                    string elementName = (string)null;
                    string controlName = (string)null;
                    ThemeResolutionService.AddBuilderToList(res, builder, regType, name2, name1, elementName, controlName);
                }
            }
            foreach (DictionaryEntry dictionaryEntry in ThemeResolutionService.registeredBuildersName)
            {
                if (string.Compare((string)dictionaryEntry.Key, themeName, true) == 0)
                {
                    StyleGroup builder = (StyleGroup)dictionaryEntry.Value;
                    BuilderRegistrationType regType = BuilderRegistrationType.ElementTypeGlobal;
                    string elementType = (string)null;
                    string controlType = (string)null;
                    string elementName = (string)null;
                    string controlName = (string)null;
                    ThemeResolutionService.AddBuilderToList(res, builder, regType, elementType, controlType, elementName, controlName);
                }
            }
            StyleGroup[] styleGroupArray = new StyleGroup[res.Count];
            res.CopyTo((Array)styleGroupArray, 0);
            return(styleGroupArray);
        }