Files
Hua.Todo/src/Hua.Todo.Avalonia/ViewModels/AppTrayViewModel.cs
T
ShaoHua 7a4c516a20 feat: 引入 CloudSync 核心能力并新增 Avalonia 桌面端与发布脚本
- 后端:新增 CloudSync 认证/权限/端点/服务与 DTO
- 数据:新增用户/会话/安全策略实体与 EF Core migrations
- 前端:新增云同步设置 UI、客户端与本地存储;Vite 支持 maui 构建输出到 wwwroot
- 桌面端:新增 Avalonia 项目、内置 WebServer、托盘与 Windows 全局热键
- 发布/构建:新增 Windows/Linux 发布脚本与统一入口;调整 MAUI 资源与安装包配置
- 文档:同步更新 README/docs 与协作规则
2026-04-07 03:34:34 +08:00

48 lines
1.6 KiB
C#

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; }
}