public static void ChangeSetting(Setting setting, string value)
        {
            // Get a temporary file name
            string tmpFile = Path.GetTempFileName();

            // Read the file into the temp file, modifying the setting as we go
            string line = string.Empty;
            using (TextReader reader = new StreamReader(settingsFilePath))
            {
                using (TextWriter writer = File.AppendText(tmpFile))
                {
                    while ((line = reader.ReadLine()) != null)
                    {
                        if (line.Split('=')[0] == setting.ToString()) // Change this line for the new value
                            writer.WriteLine(setting + "=" + value);
                        else // Write the file as is
                            writer.WriteLine(line);
                    }
                }
            }

            // Replace old file with temp one
            File.Delete(settingsFilePath);
            File.Move(tmpFile, settingsFilePath);

            Load(); // Reload settings
        }
 private static string GetDefaultValue(Setting setting)
 {
     if (setting == Setting.KinectEnabled)
         return true.ToString();
     else if (setting == Setting.KeyboardEnabled)
         return true.ToString();
     else if (setting == Setting.ResolutionHeight)
         return GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Height.ToString();
     else if (setting == Setting.ResolutionWidth)
         return GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Width.ToString();
     else if (setting == Setting.DissectionStepSize)
         return ((int)Settings.DissectionStepSize.Fast).ToString();
     else if (setting == Setting.FullscreenMode)
         return true.ToString();
     else
         throw new Exception("No such setting.");
 }
        /// <summary>
        /// Load a setting from the settings file
        /// </summary>
        /// <param name="setting">The setting to load.</param>
        private static string LoadSetting(Setting setting)
        {
            string returnValue = string.Empty;

            // Create the file if it doesn't exist
            if (!File.Exists(settingsFilePath))
                File.Create(settingsFilePath).Close();

            // Read file and return the setting
            string line = string.Empty;
            bool foundSetting = false;
            using (TextReader reader = new StreamReader(settingsFilePath))
                while (reader.Peek() >= 0 && !foundSetting)
                    if ((line = reader.ReadLine()).Split('=')[0] == setting.ToString())
                        foundSetting = true;

            if(foundSetting)
                returnValue = line.Split('=')[1];
            else
            {
                // Setting was not found, so add the default value to the file before returning it
                returnValue = GetDefaultValue(setting);
                using (TextWriter writer = File.AppendText(settingsFilePath))
                    writer.WriteLine(setting + "=" + returnValue);
            }

            return returnValue;
        }