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/          # 应用图标