/// <summary> /// Shows the options. /// </summary> public void ShowOptions() { TraceService.WriteLine("ApplicationController::ShowOptions"); OptionsView view = new OptionsView(); ResourceDictionary resourceDictionary = this.GetLanguageDictionary(); view.SetLanguageDictionary(resourceDictionary); OptionsViewModel viewModel = this.ResolverService.Resolve<OptionsViewModel>(); viewModel.LanguageDictionary = resourceDictionary; view.DataContext = viewModel; viewModel.VisualViewModel.Colors = translator.Translate(view.Colors); //// use weak references. WeakEventManager<VisualViewModel, ThemeChangedEventArgs> .AddHandler(viewModel.VisualViewModel, "ThemeChanged", view.ThemeChanged); //// set the theme. view.ChangeTheme( this.CurrentTheme, this.SettingsService.ThemeColor); view.ShowDialog(); WeakEventManager<VisualViewModel, ThemeChangedEventArgs> .RemoveHandler(viewModel.VisualViewModel, "ThemeChanged", view.ThemeChanged); //// in case any of the setting have changed to do with logging reset them! TraceService.Initialize( this.SettingsService.LogToTrace, false, //// log to console. this.SettingsService.LogToFile, this.SettingsService.LogFilePath, this.SettingsService.DisplayErrors); }