如何以编程方式保存用户设置

本文关键字:保存 用户 设置 方式 编程 | 更新日期: 2023-09-27 18:05:57

我有一个按钮,打开窗口的颜色托盘,然后分配选择颜色选定元素在一些虚拟工作室。元素首先由用户在鼠标单击时选择,然后根据元素ID分配颜色。因此,每次单击按钮时,相同或不同元素的颜色都会发生变化。元素ID是从一个委托中获得的,当鼠标单击某个元素时,该委托会触发。颜色设置按钮的代码如下:

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

现在,我的问题是如何保存元素ID和它的颜色一旦分配到用户设置?我知道我可以去属性->设置和手动定义用户设置那里,但这里必须以某种方式编程完成。然后,如何加载这些设置?

如何以编程方式保存用户设置

Set

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

得到

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

如果希望在应用程序会话之间持久化对用户设置的更改,请调用Save方法,如下面的代码所示:

Properties.Settings.Default.Save();
参考

看一下这篇文章,特别是在运行时保存用户设置部分。

有这个答案不只是一个链接。以下是相关部分的转载:

运行时保存用户设置

应用程序作用域设置是只读的,并且只能在设计时或通过更改.exe文件来更改。应用程序会话之间的配置文件。但是,可以在运行时编写用户范围设置,就像更改任何属性值一样。新值在应用程序会话期间持续存在。通过调用Settings.Save方法,可以在应用程序会话之间持久化对用户设置的更改。这些设置保存在User中。配置文件。在运行时写入和持久化用户设置访问用户设置并为其分配一个新值,如下面的示例所示:

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

如果希望在应用程序会话之间持久化对用户设置的更改,请调用Save方法,如下面的代码所示:

Properties.Settings.Default.Save();