public ThemeManager(IDependencyInjector container, IEnumerable <IThemeMeta> metas, ThemeManagerSettings settings) { _container = container; _settings = settings; Themes = metas; RegisterThemes(container); RegisterThemeSettings(container); RegisterThemeSettingsWindows(container); ActiveTheme = GetActiveTheme(); }
public ThemeManagerSettingWindow(IThemeManager themeManager, ThemeManagerSettings settings, ISettingManager manager, ISettings globalSettings) { var themes = themeManager; _settings = settings; _manager = manager; _globalSettings = globalSettings; _globalSettings.PropertyChanged += GlobalSettings_PropertyChanged; _settings.DeferChanges(); InitializeComponent(); foreach (var themeMeta in themes.Themes) { var selectedTheme = settings.SelectedTheme == themeMeta.Title; var cb = new ComboBoxItem { IsSelected = selectedTheme, Content = themeMeta.Title }; ThemeList.Items.Add(cb); } if (themes.ActiveTheme.SettingEditWindow != null) { SettingPage.Children.Clear(); SettingPage.Children.Add((UserControl)themes.ResolveSettingWindow(themes.ActiveTheme)); } ThemeList.SelectionChanged += ThemeList_SelectionChanged; Unloaded += ThemeManagerSettingWindow_Unloaded; }