From 4becaa4b023227aec289883cb43ebb1fcc6bfaa1 Mon Sep 17 00:00:00 2001 From: status102 <102887808+status102@users.noreply.github.com> Date: Tue, 12 Nov 2024 13:52:22 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20WpfGui=E4=BC=98=E5=8C=96=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E8=BF=9B=E5=BA=A6=E6=98=BE=E7=A4=BA=20(#11055)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit perf: 优化任务进度显示 --- src/MaaWpfGui/MaaWpfGui.csproj | 1 + src/MaaWpfGui/ViewModels/UI/RootViewModel.cs | 22 ++++++++++++++----- .../ViewModels/UI/TaskQueueViewModel.cs | 7 +++--- src/MaaWpfGui/Views/UI/RootView.xaml | 3 --- 4 files changed, 21 insertions(+), 12 deletions(-) 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}" /> - - -