/// <summary> /// Cleanup when closing the window. /// </summary> protected override void OnClosing(CancelEventArgs e) { base.OnClosing(e); this.CurrentSelection = null; InputManager.Current.PreProcessInput -= this.HandlePreProcessInput; EventsListener.Stop(); // persist the window placement details to the user settings. WINDOWPLACEMENT wp = new WINDOWPLACEMENT(); IntPtr hwnd = new WindowInteropHelper(this).Handle; Win32.GetWindowPlacement(hwnd, out wp); Properties.Settings.Default.SnoopUIWindowPlacement = wp; // persist whether all properties are shown by default Properties.Settings.Default.ShowDefaults = this.PropertyGrid.ShowDefaults; // persist whether the previewer is shown by default Properties.Settings.Default.ShowPreviewer = this.PreviewArea.IsActive; // actually do the persisting Properties.Settings.Default.Save(); SnoopPartsRegistry.RemoveSnoopVisualTreeRoot(this); }
/// <summary> /// Cleanup when closing the window. /// </summary> protected override void OnClosing(CancelEventArgs e) { base.OnClosing(e); // unsubscribe to owner window closing event // replaces previous attempts to hookup to MainWindow.Closing on the wrong dispatcher thread // This one should be running on the right dispatcher thread since this SnoopUI instance // is wired up to the dispatcher thread/window that it owns if (Owner != null) { Owner.Closing -= SnoopedWindowClosingHandler; } this.CurrentSelection = null; InputManager.Current.PreProcessInput -= this.HandlePreProcessInput; EventsListener.Stop(); EditedPropertiesHelper.DumpObjectsWithEditedProperties(); // persist the window placement details to the user settings. WINDOWPLACEMENT wp = new WINDOWPLACEMENT(); IntPtr hwnd = new WindowInteropHelper(this).Handle; Win32.GetWindowPlacement(hwnd, out wp); Properties.Settings.Default.SnoopUIWindowPlacement = wp; // persist whether all properties are shown by default Properties.Settings.Default.ShowDefaults = this.PropertyGrid.ShowDefaults; // persist whether the previewer is shown by default Properties.Settings.Default.ShowPreviewer = this.PreviewArea.IsActive; // actually do the persisting Properties.Settings.Default.Save(); SnoopPartsRegistry.RemoveSnoopVisualTreeRoot(this); }