diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs index 48bf965..4501baa 100644 --- a/MainWindow.xaml.cs +++ b/MainWindow.xaml.cs @@ -26,22 +26,34 @@ namespace IPClab1; public sealed partial class MainWindow : Window { private readonly DispatcherTimer timer = new() { Interval = TimeSpan.FromMilliseconds(100) }; + private bool IsClosed; public MainWindowViewModel ViewModel; public MainWindow(MainWindowViewModel viewModel) { InitializeComponent(); + + IsClosed = false; + Closed += MainWindow_Closed; + ViewModel = viewModel; + ExtendsContentIntoTitleBar = true; SetTitleBar(AppTitleBar); + timer.Tick += Timer_Tick; timer.Start(); } + private void MainWindow_Closed(object sender, WindowEventArgs args) => IsClosed = true; + private void Timer_Tick(object? sender, object e) { - AppTitleBar.Title = Title; - ViewModel.RefreshInfo(); + if (!IsClosed) + { + AppTitleBar.Title = Title; + ViewModel.RefreshInfo(); + } } private void GridView_SizeChanged(object sender, SizeChangedEventArgs e) diff --git a/ViewModels/MainWindowViewModel.cs b/ViewModels/MainWindowViewModel.cs index 46a17b4..0e8e5e7 100644 --- a/ViewModels/MainWindowViewModel.cs +++ b/ViewModels/MainWindowViewModel.cs @@ -48,7 +48,8 @@ public partial class MainWindowViewModel(WindowListService windowListService, Wi partial void OnSelectedWindowChanged(WindowInfo value) { - (Width, Height) = _windowInteractionService.GetWindowSize(value.Hwnd); + if (value != null) + (Width, Height) = _windowInteractionService.GetWindowSize(value.Hwnd); } [ObservableProperty]