public MainWindow() { InitializeComponent(); //Загрузка настроек из файла, если файл с настройками имеется try { if (File.Exists("config.xml")) { XmlDocument cfg = new XmlDocument(); cfg.Load("config.xml"); XmlElement root = cfg.DocumentElement; foreach (XmlNode node in root) { switch (node.Name) { case "dir": dir = node.Attributes.GetNamedItem("value").Value; break; case "t_lim": t_lim = Convert.ToDouble(node.Attributes.GetNamedItem("value").Value); break; case "max_count": max_count = Convert.ToInt32(node.Attributes.GetNamedItem("value").Value); break; } } } } //При неправильной записи в xml файле catch (Exception) { MessageBox.Show("Проверьте файл config.xml", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } //Если файл не существует, вызывается окно с настройками if (!File.Exists("config.xml")) { SettingsWin win = new SettingsWin(); win.ShowDialog(); max_count = win.MaxCount; t_lim = win.TemperatureLimit; this.dir = win.Directory; XmlSave(dir, t_lim, max_count); } Start(); }
//Вызов окна настроек, их применение и сохранение в xml private void Sett_Click(object sender, RoutedEventArgs e) { SettingsWin win = new SettingsWin() { Directory = dir, TemperatureLimit = t_lim, MaxCount = max_count }; win.Owner = this; win.WindowStartupLocation = WindowStartupLocation.CenterOwner; win.ShowDialog(); max_count = win.MaxCount; t_lim = win.TemperatureLimit; dir = win.Directory; XmlSave(dir, t_lim, max_count); Start(); }