7a4c516a20
- 后端:新增 CloudSync 认证/权限/端点/服务与 DTO - 数据:新增用户/会话/安全策略实体与 EF Core migrations - 前端:新增云同步设置 UI、客户端与本地存储;Vite 支持 maui 构建输出到 wwwroot - 桌面端:新增 Avalonia 项目、内置 WebServer、托盘与 Windows 全局热键 - 发布/构建:新增 Windows/Linux 发布脚本与统一入口;调整 MAUI 资源与安装包配置 - 文档:同步更新 README/docs 与协作规则
48 lines
1.6 KiB
C#
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; }
|
|
}
|
|
|