ユーザーがオプションメニューを開くことができるWPF GUIがあります。オプション メニューが新しいウィンドウで開き、チェック ボックスが表示されます。ユーザーが「OK」ボタンを押すと、ウィンドウが閉じます。ただし、開いたときにどのチェック ボックスがオンになっていたかは覚えていません。どのボックスがチェックされ、どのボックスがチェックされていないかをプログラムが記憶できるようにするにはどうすればよいですか?
具体的に言うと、プログラムの実行中にどのボックスがチェックされているかを覚えておくだけで済みます。プログラム全体が終了した後、プログラムは記憶する必要はありません。
ありがとう!
メイン ウィンドウ 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();
}
}
}
子 Window 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;
}