From 259d4193a8a66ceb67f6c737d30da872e5de176e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=89=E9=B8=AD=E8=9B=8B?= Date: Fri, 13 Jun 2025 23:27:28 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E5=BA=A6=E5=99=A8UI=E5=88=9D=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BetterGenshinImpact/App.xaml.cs | 2 + BetterGenshinImpact/View/MainWindow.xaml | 8 + .../View/Pages/SchedulerPage.xaml | 400 ++++++++++++++++++ .../View/Pages/SchedulerPage.xaml.cs | 11 + .../ViewModel/Pages/SchedulerViewModel.cs | 106 +++++ 5 files changed, 527 insertions(+) create mode 100644 BetterGenshinImpact/View/Pages/SchedulerPage.xaml create mode 100644 BetterGenshinImpact/View/Pages/SchedulerPage.xaml.cs create mode 100644 BetterGenshinImpact/ViewModel/Pages/SchedulerViewModel.cs diff --git a/BetterGenshinImpact/App.xaml.cs b/BetterGenshinImpact/App.xaml.cs index abf005e1..62e1c007 100644 --- a/BetterGenshinImpact/App.xaml.cs +++ b/BetterGenshinImpact/App.xaml.cs @@ -107,6 +107,8 @@ public partial class App : Application services.AddSingleton(); // services.AddView(); services.AddView(); + services.AddView(); + // 一条龙 ViewModels // services.AddSingleton(); diff --git a/BetterGenshinImpact/View/MainWindow.xaml b/BetterGenshinImpact/View/MainWindow.xaml index 8d579bfc..4da1f4e3 100644 --- a/BetterGenshinImpact/View/MainWindow.xaml +++ b/BetterGenshinImpact/View/MainWindow.xaml @@ -122,6 +122,14 @@ + + + + + + diff --git a/BetterGenshinImpact/View/Pages/SchedulerPage.xaml b/BetterGenshinImpact/View/Pages/SchedulerPage.xaml new file mode 100644 index 00000000..e3feb218 --- /dev/null +++ b/BetterGenshinImpact/View/Pages/SchedulerPage.xaml @@ -0,0 +1,400 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/BetterGenshinImpact/View/Pages/SchedulerPage.xaml.cs b/BetterGenshinImpact/View/Pages/SchedulerPage.xaml.cs new file mode 100644 index 00000000..d8a34c5d --- /dev/null +++ b/BetterGenshinImpact/View/Pages/SchedulerPage.xaml.cs @@ -0,0 +1,11 @@ +using System.Windows.Controls; + +namespace BetterGenshinImpact.View.Pages; + +public partial class SchedulerPage +{ + public SchedulerPage() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/BetterGenshinImpact/ViewModel/Pages/SchedulerViewModel.cs b/BetterGenshinImpact/ViewModel/Pages/SchedulerViewModel.cs new file mode 100644 index 00000000..8a50efc8 --- /dev/null +++ b/BetterGenshinImpact/ViewModel/Pages/SchedulerViewModel.cs @@ -0,0 +1,106 @@ +using System; +using System.Collections.ObjectModel; +using CommunityToolkit.Mvvm.ComponentModel; +using CommunityToolkit.Mvvm.Input; + +namespace BetterGenshinImpact.ViewModel.Pages; + +public partial class SchedulerViewModel : ViewModel +{ + // 顺序触发相关属性 + [ObservableProperty] private bool _isSequentialEnabled; + + [ObservableProperty] private double _sequentialInterval = 5; + + // 定时触发相关属性 + [ObservableProperty] private bool _isScheduledEnabled; + + [ObservableProperty] private DateTime _scheduledTime = DateTime.Now; + + [ObservableProperty] private bool _isRepeatDaily; + + [ObservableProperty] private string _nextScheduledRunText = "下次执行: 未设置"; + + // 热键触发相关属性 + [ObservableProperty] private bool _isHotkeyEnabled; + + [ObservableProperty] private string _hotkeyString = ""; + + // 任务列表 + [ObservableProperty] private ObservableCollection _tasks = new(); + + // 命令 + [RelayCommand] + private void StartSequential() + { + // 实现顺序触发逻辑 + } + + [RelayCommand] + private void StartScheduled() + { + // 实现定时触发逻辑 + } + + [RelayCommand] + private void StartHotkey() + { + // 实现热键触发逻辑 + } + + [RelayCommand] + private void AddTask() + { + // 实现添加任务逻辑 + } + + [RelayCommand] + private void EditTask(SchedulerTask task) + { + // 实现编辑任务逻辑 + } + + [RelayCommand] + private void DuplicateTask(SchedulerTask task) + { + // 实现复制任务逻辑 + } + + [RelayCommand] + private void DeleteTask(SchedulerTask task) + { + // 实现删除任务逻辑 + } + + [RelayCommand] + private void ImportTasks() + { + // 实现导入任务逻辑 + } + + [RelayCommand] + private void ExportTasks() + { + // 实现导出任务逻辑 + } + + [RelayCommand] + private void Settings() + { + // 实现全局设置逻辑 + } +} + +// 任务模型 +public partial class SchedulerTask : ObservableObject +{ + public int Index { get; set; } + + [ObservableProperty] private string _name; + + [ObservableProperty] private string _typeDescription; + + [ObservableProperty] private bool _isEnabled = true; + + // 其他任务属性 +} \ No newline at end of file