¿Cómo guardar programáticamente las configuraciones de usuario?

Tengo un botón que abre la paleta de colores de Windows y luego asigna el color seleccionado al elemento seleccionado en algún estudio virtual. El elemento primero es seleccionado por el usuario al hacer clic con el mouse y, según la identificación del elemento, el color es asignado. Por lo tanto, cada vez que se hace clic en el botón, se cambia el color del mismo elemento o diferente. La ID del elemento se obtiene de un delegado que se activa si se hace clic con el mouse en algún elemento. El código para el botón de conjunto de colores es así:

private void Btn_Choose_Color_Click(object sender, RoutedEventArgs e) { uint id_selected = (uint)selected_element; //get id of selected element from clickintocallback //open windows color dialog System.Windows.Forms.ColorDialog my_dialog = new System.Windows.Forms.ColorDialog(); my_dialog.ShowDialog(); //get the color from windows dialog int red = my_dialog.Color.R; int green = my_dialog.Color.G; int blue = my_dialog.Color.B; //create cinector color object and pass rgb values from windows dialog ByteRGBColor desired_color = new ByteRGBColor((byte)red, (byte)green, (byte)blue); //assign color statically for (int i = 0; i < all_color_elements_in_loaded_studio.Count; i++) { uint id_current = all_color_elements_in_loaded_studio.ElementAt(0).colorElementID; //get id of current element in a loop if(id_current == id_selected) //compare selected and current element { //all_color_elements_in_loaded_studio.ElementAt(i).colorElementColor = test_color; //set the test color instance.SetStudioColorElement(id_current, desired_color); //assign the color to the element break; } } //after we choose a color Btn_Pick_Element_Clicked = false; Btn_Choose_Color.IsEnabled = false; } 

Ahora, mi pregunta es cómo guardar la identificación del elemento y su color una vez que se asigna a la configuración del usuario. Entiendo que puedo ir a Propiedades-> Configuración y definir manualmente la configuración del usuario allí, pero aquí debe hacerse de alguna manera programáticamente. Y luego también, ¿cómo volver a cargar estos ajustes?

¿Apreciaría cualquier ayuda?

Conjunto

 Properties.Settings.Default.myColor = Color.AliceBlue; 

Obtener

 this.BackColor = Properties.Settings.Default.myColor; 

Salvar

Si desea conservar los cambios en la configuración del usuario entre las sesiones de la aplicación, llame al método Guardar, como se muestra en el siguiente código:

 Properties.Settings.Default.Save(); 

Referencia

Eche un vistazo a este artículo , especialmente en Guardar la configuración de usuario en la sección Tiempo de ejecución .

Para tener esta respuesta no solo sea un enlace. Aquí se reproduce la sección correspondiente:

Guardar la configuración del usuario en tiempo de ejecución

La configuración del ámbito de aplicación es de solo lectura y solo se puede cambiar en el momento del diseño o modificando el archivo .exe.config entre las sesiones de la aplicación. Sin embargo, la configuración del scope del usuario se puede escribir en tiempo de ejecución, tal como cambiaría cualquier valor de propiedad. El nuevo valor persiste durante la duración de la sesión de la aplicación. Puede persistir los cambios en la configuración del usuario entre las sesiones de la aplicación llamando al método Settings.Save . Estas configuraciones se guardan en el archivo User.config. Para escribir y persistir en la configuración del usuario en tiempo de ejecución Acceda a la configuración del usuario y asígnele un nuevo valor, como se muestra en el siguiente ejemplo:

 Properties.Settings.Default.myColor = Color.AliceBlue; 

Si desea conservar los cambios en la configuración del usuario entre las sesiones de la aplicación, llame al método Guardar, como se muestra en el siguiente código:

 Properties.Settings.Default.Save();