public ThemeSettingsViewModel LoadTheme(ThemeModel theme) { ThemeSettingsViewModel result = null; try { if (theme == null) { theme = DefaultTheme; } if (theme.Path.StartsWith("/Cleverdock;component/")) { LoadComponentTheme(theme.Path); } else { var xamlPath = Path.Combine(theme.Path, "style.xaml"); var xaml = XamlHelper.LoadXaml(xamlPath); LoadResourceDictionary(xaml); var settingsPath = Path.Combine(theme.Path, "theme.json"); result = GetSettings(settingsPath); } VMLocator.Main.Theme = theme; if (ThemeChanged != null) { ThemeChanged(this, new ThemeEventArgs(theme)); } } catch (Exception ex) { MessageBox.Show("Theme \"" + theme.Name + "\" failed to load. \n" + ex.Message); LoadTheme(DefaultTheme); } return(result); }
public void LoadTheme(Theme theme) { try { if (theme == null) { theme = DefaultTheme; } if (theme.Path.StartsWith("/Cleverdock;component/")) { LoadComponentTheme(theme.Path); } else { var xaml = XamlHelper.LoadXaml(theme.Path); LoadResourceDictionary(xaml); } SettingsManager.Settings.Theme = theme; if (ThemeChanged != null) { ThemeChanged(this, new ThemeEventArgs(theme)); } } catch (Exception ex) { MessageBox.Show("Theme \"" + theme.Name + "\" failed to load. \n" + ex.Message); LoadTheme(DefaultTheme); } }