在WPF C#中保存子窗口的状态

Eri*_*ark 2 c# wpf childwindow

我有一个WPF GUI,允许用户打开选项菜单.选项菜单在新窗口中打开,并填充复选框.当用户按下"确定"按钮时,窗口关闭.但是,它不记得在打开备份时检查了哪些复选框.如何确保程序能够记住检查了哪些盒子以及哪些盒子没有?

只需指定:我只需要记住在程序运行期间检查哪些框.整个程序退出后,程序不需要记住.

谢谢!

这是我的主窗口Window1.XAML.CS下的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace CartToolsPrototype1
{
    /// <summary>
    /// Interaction logic for Window1.xaml
    /// </summary>
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }

        //Exit
        private void Exit_Click(object sender, RoutedEventArgs e)
        {
            System.Environment.Exit(0);
        }

        //Options
        private void Options_Click(object sender, RoutedEventArgs e)
        {
            var newWindow = new Options();
            newWindow.Show();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的子窗口Options.XAML.CS下的代码.这是基于第一个答案.我已经阅读了你发布的链接,这很有意义.我在我的设置文件中有条件,当用户选中我的复选框时,我会更改这些条件.然后,我有一个条件,确定是否根据设置文件检查框,但它似乎没有反映任何更改...

public partial class Options_Window : Window
    {
        public Options_Window()
        {
            InitializeComponent();

            //Checkbox1
            if (Properties.Settings.Default.OptionsBox1 == true)
                checkBox1.IsChecked = true;
            else
                checkBox1.IsChecked = false;
        }

        //Close Window
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }

        //Ask before downloading... - CHECKED
        private void checkBox1_Checked(object sender, RoutedEventArgs e)
        {
            Properties.Settings.Default.OptionsBox1 = true;
        }

        //Ask before downloading... - UNCHECKED
        private void checkBox1_Unchecked(object sender, RoutedEventArgs e)
        {
            Properties.Settings.Default.OptionsBox1 = false;
        }
Run Code Online (Sandbox Code Playgroud)

dsf*_*sho 6

您可以使用"设置"在不同的Windows /控件之间共享数据,甚至在关闭/启动应用程序时保存应用程序数据.

.NET Framework允许您创建和访问应用程序执行会话之间持久存储的值.这些值称为设置.设置可以表示用户首选项或应用程序需要使用的有价值信息.例如,您可以创建一系列设置来存储应用程序颜色方案的用户首选项.或者,您可以存储指定应用程序使用的数据库的连接字符串.设置允许您在代码之外保留对应用程序至关重要的信息,并创建存储各个用户首选项的配置文件.

您可以在任何窗口中保存设置:

Properties.Settings.Default.mySetting = true;
Properties.Settings.Default.Save();
Run Code Online (Sandbox Code Playgroud)

您可以在任何窗口中阅读/使用设置:

this.Property = Properties.Settings.Default.mySetting;
Run Code Online (Sandbox Code Playgroud)