using System; using System.ComponentModel; using System.Windows; using System.Windows.Input; namespace WarframeClock { /// /// Interaction logic for StandaloneOverlayWindow.xaml /// public partial class StandaloneOverlayWindow : Window { private readonly OverlayWindowViewModel _vm; private bool _closing = false; public StandaloneOverlayWindow(OverlayWindowViewModel vm) { InitializeComponent(); DataContext = _vm = vm; _vm.PropertyChanged += OnVmPropertyChanged; } protected override void OnClosing(CancelEventArgs e) { base.OnClosing(e); if (!_closing) { e.Cancel = true; Hide(); } } protected override void OnClosed(EventArgs e) { base.OnClosed(e); _vm.PropertyChanged -= OnVmPropertyChanged; } private void OnVmPropertyChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == nameof(OverlayWindowViewModel.Standalone) && !_vm.Standalone) { (App.Current.MainWindow = new OverlayWindow(_vm)).Show(); _closing = true; Close(); } } private void Window_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) { if (e.LeftButton == MouseButtonState.Pressed) DragMove(); } } }