protected override void OnClosing(CancelEventArgs e) { if (LoadedROM != null) { if (assets != null) { assets.Close(); if (assets.IsVisible) { e.Cancel = true; return; } } if (sound != null) { sound.Close(); if (sound.IsVisible) { e.Cancel = true; return; } } if (texts != null) { texts.Close(); if (texts.IsVisible) { e.Cancel = true; return; } } var res = System.Windows.MessageBox.Show("Would you like to save the edited changes?", "Edited changes", MessageBoxButton.YesNoCancel, MessageBoxImage.Warning); if (res == MessageBoxResult.Cancel) { e.Cancel = true; return; } if (res == MessageBoxResult.Yes) { var data = LoadedROM.Write(); SaveFileDialog sf = new SaveFileDialog { Filter = Utils.GetNDSFilter(), Title = Utils.GetResource("ROMSave"), }; if (sf.ShowDialog() == System.Windows.Forms.DialogResult.OK) { File.WriteAllBytes(sf.FileName, data); } } } base.OnClosing(e); }