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