/// <summary>
        /// This procedure changes the current WPF Application Theme into another theme
        /// while the application is running (re-boot should not be required).
        /// </summary>
        /// <param name="e"></param>
        /// <param name="disp"></param>
        private void ChangeThemeCmd_Executed(object s,
                                             ExecutedRoutedEventArgs e,
                                             System.Windows.Threading.Dispatcher disp)
        {
            string oldTheme = Factory.DefaultThemeName;

            try
            {
                if (e == null)
                {
                    return;
                }

                if (e.Parameter == null)
                {
                    return;
                }

                string newThemeName = e.Parameter as string;

                // Check if request is available
                if (newThemeName == null)
                {
                    return;
                }

                oldTheme = _SettingsManager.SettingData.CurrentTheme;

                // The Work to perform on another thread
                ThreadStart start = delegate
                {
                    // This works in the UI tread using the dispatcher with highest Priority
                    disp.Invoke(DispatcherPriority.Send,
                                (Action)(() =>
                    {
                        try
                        {
                            if (ApplicationThemes.SetSelectedTheme(newThemeName) == false)
                            {
                                return;
                            }

                            _SettingsManager.SettingData.CurrentTheme = newThemeName;
                            ResetTheme();                        // Initialize theme in process
                        }
                        catch (Exception exp)
                        {
                            Logger.Error(exp.Message, exp);
                            _MsgBox.Show(exp, Edi.Util.Local.Strings.STR_MSG_IssueTrackerTitle, MsgBoxButtons.OK, MsgBoxImage.Error, MsgBoxResult.NoDefaultButton,
                                         _AppCore.IssueTrackerLink,
                                         _AppCore.IssueTrackerLink,
                                         Edi.Util.Local.Strings.STR_MSG_IssueTrackerText, null, true);
                        }
                    }));
                };

                // Create the thread and kick it started!
                Thread thread = new Thread(start);

                thread.Start();
            }
            catch (Exception exp)
            {
                _SettingsManager.SettingData.CurrentTheme = oldTheme;

                Logger.Error(exp.Message, exp);
                _MsgBox.Show(exp, Edi.Util.Local.Strings.STR_MSG_IssueTrackerTitle, MsgBoxButtons.OK, MsgBoxImage.Error, MsgBoxResult.NoDefaultButton,
                             _AppCore.IssueTrackerLink,
                             _AppCore.IssueTrackerLink,
                             Edi.Util.Local.Strings.STR_MSG_IssueTrackerText, null, true);
            }
        }