TodoList — 一款功能完善的 WPF 桌面待办应用
项目概览
TodoList 是一款基于 .NET 8 + WPF 的桌面待办管理工具,采用 Fluent Design 现代化设计风格,支持事项管理、日历视图、重复提醒、桌面悬浮小组件、批量操作、数据备份恢复等完整功能场景
下载地址:https://amedev.amesucre.com/TodoList/~builds
核心功能
1. 事项管理(CRUD)
- 快速添加:顶部输入框回车即添加,支持标题 + 描述
- 完整编辑:事项详情窗口涵盖标题、描述、分类、截止日期、优先级(5 级)、颜色标记、标签关联、重复设置、提醒时间
- 智能链接识别:描述中自动提取 URL,主列表显示链接图标并支持一键跳转浏览器
2. 分类与标签系统
- 分类管理:创建/编辑/删除分类,自定义名称和颜色,支持拖拽排序,内置"未分类"和"未分类已完成"两个系统分类(自动显示/隐藏)
- 标签系统:多对多关联,支持独立管理窗口,事项可选择多个标签
3. 日历视图
- 标准月历网格:6×7 布局,前后填充邻近月份灰色日期
- 事项可视化:每天格子内按优先级着色展示事项,超出空间显示"+N 更多"
- 日期导航:月份翻页 + "今日"快捷跳转
- 拖拽改日期:在日历格子之间拖拽事项项来快速修改截止日期
4. 重复事项
- 支持每天/每周/每月/每年 + 自定义间隔
- 完成重复事项后自动生成下一期副本(继承所有属性,次数递减)
- 截止条件:次数归零或超过截止日期
5. 提醒系统
- 30 秒轮询检查,支持三种提醒方式:应用内弹窗、系统 Toast 通知、两者兼用
- 过期自动完成:可配置事项过期后自动标记完成
- 稍后提醒:推迟 10 分钟后再次提醒
6. 桌面悬浮小组件
- 独立无边框窗口:支持拖拽移动、四边缩放、始终置顶
- 5 种分组视图:按日期、按分类、按标签、按优先级、日历
- 外观自定义:背景色、透明度、预设主题,设置持久化保存
7. 批量操作
- 多选事项后自动进入批量模式,支持全选/反选
- 批量设置:分类、标签、优先级、颜色、日期、切换完成状态、批量删除
8. 数据备份与恢复
- 手动备份:一键复制数据库到备份目录(带时间戳)
- 自动备份:支持每周/每月/自定义周期定时备份
- 备份管理:列出所有备份文件,支持恢复和删除
- 数据清除:需输入确认文本"删除数据"方可执行
9. 系统托盘
- 应用最小化到系统托盘,右键菜单显示/退出
- 关闭窗口可选择最小化到托盘而非退出
10. 设置中心(5 个标签页)
| 标签页 | 配置项 |
|---|---|
| 全局 | 最小化到托盘、开机自启动 |
| 标签 | 标签的增删改查与颜色设置 |
| 事项 | 默认分类、默认日期、编辑方式、批量模式行为、提醒方式 |
| 数据 | 手动/自动备份、备份管理、数据清除 |
| 关于 | 版本与技术栈展示 |
项目结构
TodoList/
├── Models/ # 数据模型(Category/Tag/TodoItem)
├── Data/ # EF Core 数据库上下文
├── Services/ # TodoService(统一数据访问层)
├── ViewModels/ # MainViewModel + 拖拽排序
├── Views/ # 16 个 XAML 窗口/控件
├── Converters/ # 17 个值转换器
├── Helpers/ # EventBus/AppPaths/AppSettings/ReminderService 等
└── Assets/ # 应用图标