diff --git a/src/MaaWpfGui/MaaWpfGui.csproj b/src/MaaWpfGui/MaaWpfGui.csproj index 2b91eedf2e..28cad167f7 100644 --- a/src/MaaWpfGui/MaaWpfGui.csproj +++ b/src/MaaWpfGui/MaaWpfGui.csproj @@ -132,6 +132,7 @@ + diff --git a/src/MaaWpfGui/ViewModels/UI/RootViewModel.cs b/src/MaaWpfGui/ViewModels/UI/RootViewModel.cs index e481154ca6..71f0441bae 100644 --- a/src/MaaWpfGui/ViewModels/UI/RootViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/RootViewModel.cs @@ -18,6 +18,7 @@ using System.Windows.Media; using MaaWpfGui.Constants; using MaaWpfGui.Helper; using MaaWpfGui.Main; +using Microsoft.WindowsAPICodePack.Taskbar; using Stylet; namespace MaaWpfGui.ViewModels.UI @@ -90,17 +91,28 @@ namespace MaaWpfGui.ViewModels.UI set => SetAndNotify(ref _windowTitle, value); } - private double _progress; + private (int Current, int Max)? _taskProgress; /// - /// Gets or sets the progress. + /// Gets or sets the TaskProgress. /// 0.0 to 1.0. /// 置 0 以隐藏进度条. /// - public double Progress + public (int Current, int Max)? TaskProgress { - get => _progress; - set => SetAndNotify(ref _progress, value); + get => _taskProgress; + set + { + SetAndNotify(ref _taskProgress, value); + if (value is null) + { + TaskbarManager.Instance.SetProgressValue(0, 0); + } + else + { + TaskbarManager.Instance.SetProgressValue(value.Value.Current, value.Value.Max); + } + } } private bool _windowTitleScrollable = Convert.ToBoolean(ConfigurationHelper.GetValue(ConfigurationKeys.WindowTitleScrollable, bool.FalseString)); diff --git a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs index 33efcfcb20..86132d6e4a 100644 --- a/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs +++ b/src/MaaWpfGui/ViewModels/UI/TaskQueueViewModel.cs @@ -1143,7 +1143,7 @@ namespace MaaWpfGui.ViewModels.UI var rvm = (RootViewModel)this.Parent; if (MainTasksSelectedCount == 0) { - rvm.Progress = 0; + rvm.TaskProgress = null; return; } @@ -1151,12 +1151,11 @@ namespace MaaWpfGui.ViewModels.UI if (MainTasksCompletedCount >= MainTasksSelectedCount) { - rvm.Progress = 0; + rvm.TaskProgress = null; } else { - var progress = MainTasksCompletedCount / (double)MainTasksSelectedCount; - rvm.Progress = progress; + rvm.TaskProgress = (MainTasksCompletedCount, MainTasksSelectedCount); } } diff --git a/src/MaaWpfGui/Views/UI/RootView.xaml b/src/MaaWpfGui/Views/UI/RootView.xaml index b739e4b83e..e4281a9f3b 100644 --- a/src/MaaWpfGui/Views/UI/RootView.xaml +++ b/src/MaaWpfGui/Views/UI/RootView.xaml @@ -51,9 +51,6 @@ Foreground="{Binding WindowTopMostButtonForeground}" /> - - -