Пример #1
0
        public IList <ThemeM> GetThemes(string folder)
        {
            var themes = new List <ThemeM>();

            if (Directory.Exists(folder))
            {
                var dllFileNames = Directory.GetFiles(folder, "*.dll");
                //ICollection<Assembly> assemblies = new List<Assembly>(dllFileNames.Length);
                foreach (string dllFile in dllFileNames)
                {
                    var assemblyName        = AssemblyName.GetAssemblyName(dllFile).Name;
                    var currentDllResources = AssemblyResourceHelper.LoadXaml(dllFile);
                    themes.Add(new ThemeM(assemblyName, currentDllResources.Where(_ => _.ResourceType == XamlResourceType.ColorScheme).Select(it => new ColorSchemeM(it.Name, it.Resource)).ToList(),
                                          currentDllResources.Where(_ => _.ResourceType == XamlResourceType.ControlStyle).Select(it => new ControlStyleM(it.Name, it.Resource)).ToList(),
                                          currentDllResources.Where(_ => _.ResourceType == XamlResourceType.NumericValue).Select(it => new NumericValuesM(it.Name, it.Resource)).ToList()));
                }
            }

            return(themes);
        }