151 lines
4.5 KiB
Markdown
151 lines
4.5 KiB
Markdown
# TodoList 待办事项管理应用
|
||
|
||
一个基于 C# WPF 开发的轻量、高效桌面待办事项管理应用,专注于通过全局快捷键提供极致的快速记录体验。
|
||
|
||
## 🚀 功能特点
|
||
|
||
### 核心功能
|
||
- **全局快捷键快速记录**:支持系统级全局快捷键(如 `Ctrl + Alt + A`),随时唤起记录窗口
|
||
- **优先级管理**:支持高、中、低三种优先级设置,通过颜色直观区分
|
||
- **任务状态跟踪**:清晰标记任务完成状态,默认隐藏已完成任务
|
||
- **本地数据持久化**:使用 SQLite 数据库保存数据,支持完全离线使用
|
||
|
||
### 技术特性
|
||
- **响应式界面**:基于 WPF 构建的现代化用户界面
|
||
- **MVVM 架构**:采用 CommunityToolkit.Mvvm 实现清晰的架构分层
|
||
- **自包含发布**:支持单文件发布,无需额外依赖
|
||
- **一键打包**:内置自动构建和打包脚本
|
||
|
||
## 🛠️ 技术栈
|
||
|
||
- **开发语言**:C# 10+
|
||
- **UI 框架**:WPF (Windows Presentation Foundation)
|
||
- **目标框架**:.NET 8.0
|
||
- **架构模式**:MVVM (Model-View-ViewModel)
|
||
- **数据存储**:SQLite (sqlite-net-pcl)
|
||
- **打包工具**:Inno Setup 6
|
||
- **依赖管理**:NuGet
|
||
|
||
## 📦 安装与使用
|
||
|
||
### 直接安装
|
||
1. 从 `Output` 目录下载最新的安装包:`TodoList_Setup_vX.X.X.exe`
|
||
2. 双击运行安装程序,按照提示完成安装
|
||
3. 启动应用后,在系统托盘找到应用图标
|
||
|
||
### 使用说明
|
||
- **快速记录**:按下预设的全局快捷键(默认为 `Ctrl + Alt + A`)
|
||
- **添加任务**:在快速记录窗口中输入任务内容,设置优先级,按 Enter 保存
|
||
- **管理任务**:在主界面中查看、编辑和标记任务完成状态
|
||
- **隐藏完成任务**:默认自动隐藏已完成任务,可通过界面开关显示
|
||
|
||
## 🔧 开发指南
|
||
|
||
### 环境要求
|
||
- Visual Studio 2022 或更高版本
|
||
- .NET 8.0 SDK
|
||
- Inno Setup 6(用于打包)
|
||
|
||
### 快速开始
|
||
|
||
1. **克隆或下载项目**
|
||
```bash
|
||
git clone <仓库地址>
|
||
cd TodoList
|
||
```
|
||
|
||
2. **打开项目**
|
||
- 使用 Visual Studio 打开 `TodoList.slnx` 解决方案
|
||
- 或直接打开 `TodoList/TodoList.csproj` 项目文件
|
||
|
||
3. **安装依赖**
|
||
```bash
|
||
dotnet restore
|
||
```
|
||
|
||
4. **运行项目**
|
||
```bash
|
||
dotnet run --project TodoList/TodoList.csproj
|
||
```
|
||
|
||
### 构建与发布
|
||
|
||
使用内置的发布脚本进行一键构建和打包:
|
||
|
||
```bash
|
||
cd TodoList/TodoList
|
||
powershell -ExecutionPolicy Bypass -File "BuildSetup.ps1"
|
||
```
|
||
|
||
脚本功能:
|
||
- 自动递增版本号
|
||
- 更新项目文件和安装脚本版本
|
||
- 编译 Release 版本
|
||
- 生成单文件可执行文件
|
||
- 创建安装程序(输出到 `Output` 目录)
|
||
|
||
## 📁 项目结构
|
||
|
||
```
|
||
TodoList/
|
||
├── TodoList/ # 主项目目录
|
||
│ ├── Models/ # 数据模型
|
||
│ ├── Services/ # 服务层(数据访问、快捷键等)
|
||
│ ├── ViewModels/ # 视图模型
|
||
│ ├── Views/ # 界面视图
|
||
│ ├── TodoList.csproj # 项目文件
|
||
│ ├── BuildSetup.ps1 # 发布脚本
|
||
│ └── setup.iss # Inno Setup 安装脚本
|
||
├── TodoList.slnx # 解决方案文件
|
||
├── PRD.md # 产品需求文档
|
||
└── README.md # 项目说明文档
|
||
```
|
||
|
||
## 🎯 核心模块说明
|
||
|
||
### QuickEntryWindow
|
||
快速记录窗口,通过全局快捷键唤起,提供极简的任务输入体验。
|
||
|
||
### MainWindow
|
||
主界面,展示任务列表,支持任务管理和状态切换。
|
||
|
||
### GlobalShortcutService
|
||
全局快捷键服务,负责注册和监听系统级快捷键。
|
||
|
||
### SqliteDataService
|
||
SQLite 数据服务,实现本地数据持久化。
|
||
|
||
## 🔄 版本更新
|
||
|
||
### 版本策略
|
||
- 采用语义化版本号:`MAJOR.MINOR.PATCH`
|
||
- 每次运行发布脚本自动递增 PATCH 版本
|
||
|
||
### 更新日志
|
||
|
||
| 版本 | 日期 | 描述 |
|
||
|------|------|------|
|
||
| 1.0.17 | 2024-01-XX | 修复发布脚本和安装路径问题 |
|
||
| 1.0.16 | 2024-01-XX | 完善任务优先级显示 |
|
||
| 1.0.0 | 2024-01-XX | 初始版本发布 |
|
||
|
||
## 🤝 贡献指南
|
||
|
||
1. Fork 项目
|
||
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
|
||
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
|
||
4. 推送到分支 (`git push origin feature/AmazingFeature`)
|
||
5. 打开 Pull Request
|
||
|
||
## 📄 许可证
|
||
|
||
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情
|
||
|
||
## 📞 联系方式
|
||
|
||
- 项目作者:ShaoHua
|
||
- 项目地址:<https://git.we965.cn/Tools/TodoList>
|
||
|
||
---
|
||
|
||
**TodoList** - 让任务管理更高效! |