private void btPen_Click(object sender, RoutedEventArgs e) { if (btPen.IsActived) { foreach (Window drawer in Application.Current.Windows) { if (drawer is DrawerWindow) { drawer.Close(); btPen.IsActived = false; Dispatcher.Invoke(() => { GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); }); return; } } } else { DrawerWindow win = new DrawerWindow(); btPen.IsActived = true; win.Owner = this; win.Show(); } }
private void OpenDraweWin() { if ((bool)btPen.IsChecked && DrawerWin == null) { DrawerWin = new DrawerWindow { Owner = this }; DrawerWin.Show(); btPen.IsChecked = true; } else { DrawerWin?.Close(); DrawerWin = null; Dispatcher.Invoke(() => { GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); }); btPen.IsChecked = false; } }