feat: 任务栏图标支持启动和停止任务

This commit is contained in:
Dusk_NM02
2022-07-16 10:38:44 +08:00
parent eba36ff94e
commit fee172854f
3 changed files with 26 additions and 14 deletions

View File

@@ -22,6 +22,7 @@ namespace MeoAsstGui
public partial class TrayIcon
{
private NotifyIcon notifyIcon = new NotifyIcon();
private TaskQueueViewModel taskQueueViewModel;
private WindowState ws; //记录窗体状态
private bool _isMinimizeToTaskbar = false;
@@ -41,15 +42,23 @@ namespace MeoAsstGui
MenuItem showMenu = new System.Windows.Forms.MenuItem("打开 MAA");
showMenu.Click += App_show;
// 不知道怎么调用 TaskQueue.LinkStart, 等一个有缘的大佬来写(
//MenuItem startMenu = new System.Windows.Forms.MenuItem("开始长草");
//startMenu.Click += StartTask;
//MenuItem stopMenu = new System.Windows.Forms.MenuItem("全部停止");
//stopMenu.Click += StopTask;
MenuItem startMenu = new System.Windows.Forms.MenuItem("开始长草");
startMenu.Click += StartTask;
MenuItem stopMenu = new System.Windows.Forms.MenuItem("全部停止");
stopMenu.Click += StopTask;
MenuItem exitMenu = new System.Windows.Forms.MenuItem("退出");
exitMenu.Click += App_exit;
System.Windows.Forms.MenuItem[] menuItems = new MenuItem[] { showMenu, exitMenu };
System.Windows.Forms.MenuItem[] menuItems = new MenuItem[] { showMenu, startMenu, stopMenu, exitMenu };
this.notifyIcon.ContextMenu = new System.Windows.Forms.ContextMenu(menuItems);
}
/// <summary>
/// 只应该在TaskQueueViewModel的构造函数中调用这个函数不要传入一个随便new出来的TaskQueueViewModel
/// </summary>
/// <param name="taskQueueViewModel">一个 不是 随便new出来的TaskQueueViewModel</param>
public void SetTaskQueueViewModel(TaskQueueViewModel taskQueueViewModel)
{
this.taskQueueViewModel = taskQueueViewModel;
}
private void MainWindow_StateChanged(object sender, EventArgs e)
{
@@ -83,15 +92,16 @@ namespace MeoAsstGui
}
}
//private void StartTask(object sender, EventArgs e)
//{
// 不知道怎么调用 TaskQueue.LinkStart, 等一个有缘的大佬来写(
//}
private void StartTask(object sender, EventArgs e)
{
//taskQueueViewModel意外为null了是不是也可以考虑Log一下
taskQueueViewModel?.LinkStart();
}
//private void StopTask(object sender, EventArgs e)
//{
// 不知道怎么调用 TaskQueue.Stop, 等一个有缘的大佬来写(
//}
private void StopTask(object sender, EventArgs e)
{
taskQueueViewModel?.Stop();
}
private void App_exit(object sender, EventArgs e)
{

View File

@@ -63,7 +63,7 @@ namespace MeoAsstGui
var trayObj = _container.Get<TrayIcon>();
trayObj.SetVisible(UseTray);
trayObj.SetMinimizeToTaskbar(MinimizeToTray);
Bootstrapper.SetTrayIconInSettingsViewModel(trayObj);
Bootstrapper.SetTrayIconInSettingsViewModel(this);
}
private List<string> _listTitle = new List<string>();

View File

@@ -66,6 +66,8 @@ namespace MeoAsstGui
LogItemViewModels = new ObservableCollection<LogItemViewModel>();
InitializeItems();
InitTimer();
var trayIcon = _container.Get<TrayIcon>();
trayIcon.SetTaskQueueViewModel(this);
}
//public void ShowButton()