private void Unfocused(object sender, EventArgs e) { Thread.Sleep(200); //Make sure unfocused event is processed after left click event //TODO change behavior of SysTrayWrapper _tasksManagerWindow.Deactivated -= Unfocused; _tasksManagerWindow.Close(); _tasksManagerWindow = null; }
private void LeftClickOnTray() { if (_tasksManagerWindow == null) { _tasksManagerWindow = new TasksManagerView(_viewModel); var point = System.Windows.Forms.Cursor.Position; _tasksManagerWindow.Left = point.X - _tasksManagerWindow.Width / 2; _tasksManagerWindow.Top = point.Y - _tasksManagerWindow.Height; _tasksManagerWindow.Topmost = true; _tasksManagerWindow.ShowInTaskbar = false; _tasksManagerWindow.Show(); _tasksManagerWindow.Activate(); _tasksManagerWindow.Deactivated += Unfocused; } ////DEBUG //var task = _taskRepository.GetAllExecutableTasks().ToArray()[3]; //Task.Run(() => //{ // for (;;) // { // Application.Current.Dispatcher.Invoke(delegate { // task.IsFailed = !task.IsFailed; // }); // Thread.Sleep(2000); // } //}); }