feat: 引入 CloudSync 核心能力并新增 Avalonia 桌面端与发布脚本
- 后端:新增 CloudSync 认证/权限/端点/服务与 DTO - 数据:新增用户/会话/安全策略实体与 EF Core migrations - 前端:新增云同步设置 UI、客户端与本地存储;Vite 支持 maui 构建输出到 wwwroot - 桌面端:新增 Avalonia 项目、内置 WebServer、托盘与 Windows 全局热键 - 发布/构建:新增 Windows/Linux 发布脚本与统一入口;调整 MAUI 资源与安装包配置 - 文档:同步更新 README/docs 与协作规则
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
using CommunityToolkit.Mvvm.ComponentModel;
|
||||
using CommunityToolkit.Mvvm.Input;
|
||||
using System;
|
||||
|
||||
namespace Hua.Todo.Avalonia.ViewModels;
|
||||
|
||||
/// <summary>
|
||||
/// 应用托盘交互的 ViewModel。
|
||||
/// 用于为 <see cref="global::Avalonia.Controls.TrayIcon"/> 提供命令与提示文本,并将托盘事件路由到应用层逻辑。
|
||||
/// </summary>
|
||||
public sealed partial class AppTrayViewModel : ObservableObject
|
||||
{
|
||||
private readonly Action _showMainWindow;
|
||||
private readonly Action _exitApplication;
|
||||
|
||||
/// <summary>
|
||||
/// 创建 <see cref="AppTrayViewModel"/>。
|
||||
/// </summary>
|
||||
/// <param name="trayTooltipText">托盘提示文本(部分平台有长度限制)。</param>
|
||||
/// <param name="showMainWindow">显示/激活主窗口回调。</param>
|
||||
/// <param name="exitApplication">退出应用回调(应触发应用生命周期关闭)。</param>
|
||||
public AppTrayViewModel(string trayTooltipText, Action showMainWindow, Action exitApplication)
|
||||
{
|
||||
TrayTooltipText = trayTooltipText;
|
||||
_showMainWindow = showMainWindow;
|
||||
_exitApplication = exitApplication;
|
||||
|
||||
ShowMainWindowCommand = new RelayCommand(_showMainWindow);
|
||||
ExitApplicationCommand = new RelayCommand(_exitApplication);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 托盘提示文本。
|
||||
/// </summary>
|
||||
public string TrayTooltipText { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 显示/激活主窗口命令。
|
||||
/// </summary>
|
||||
public IRelayCommand ShowMainWindowCommand { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 退出应用命令。
|
||||
/// </summary>
|
||||
public IRelayCommand ExitApplicationCommand { get; }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user