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); }