FlexToDo 是一个基于 C# WPF 开发的悬浮待办事项应用,支持背景穿透模式和交互模式切换。
💡 开发方式:本项目采用人机协作开发模式,由开发者与 Claude Code Assistant 协作完成。开发过程包括需求分析、架构设计、代码实现和文档编写的完整协作流程。
- 🌊 背景穿透模式:280px固定宽度界面,0.7透明度,完全鼠标穿透,始终可见
- ⚡ 热键激活:通过全局热键瞬间切换到交互模式(0.95透明度),无需中断工作流
- 🔥 紧急提醒:4级紧急程度颜色编码,托盘通知系统
- 💾 本地存储:安全的JSON文件存储,支持自动备份和数据恢复
- ⚙️ 轻量运行:内存占用<10MB,后台CPU占用接近0%
| 快捷键 | 功能 |
|---|---|
Ctrl+Alt+Space |
切换主界面显示/隐藏 |
Ctrl+Alt+N |
快速添加新待办事项 |
Ctrl+Alt+V |
快速查看待办列表 |
Ctrl+Alt+C |
清除已完成事项 |
Esc |
退出交互模式 |
FlexToDo/
├── FlexToDo.Core/ # 核心业务逻辑
│ ├── Models/ # 数据模型 (TodoItem, UrgencyLevel)
│ ├── Services/ # 业务服务 (TodoService)
│ └── Interfaces/ # 服务接口
├── FlexToDo.Infrastructure/ # 基础设施层
│ ├── Win32/ # Win32 API封装
│ └── Storage/ # 本地存储服务
├── FlexToDo.UI/ # 用户界面层
│ ├── Views/ # XAML视图
│ ├── ViewModels/ # MVVM视图模型
│ └── Controls/ # 自定义控件
└── FlexToDo.App/ # 应用程序入口
└── Services/ # 应用级服务 (托盘图标)
- MVVM模式:视图与业务逻辑分离
- 依赖注入:使用 Microsoft.Extensions.DependencyInjection
- 观察者模式:状态变化和UI更新
- 命令模式:热键和UI操作统一处理
- 280px × 完整高度界面,0.7透明度,完全鼠标穿透
- Win32点击穿透机制,不干扰正常工作
- 完整待办列表始终可见,紧急程度颜色编码
- 280px × 完整高度界面,0.95透明度
- 恢复正常鼠标交互,支持所有操作
- 任务列表按紧急程度排序显示
- 快速添加、编辑、完成任务功能
- 框架:.NET 8.0 + WPF
- 状态管理:WindowStateController (背景模式 ↔ 交互模式)
- 热键系统:GlobalHotkeyManager (Win32 API)
- 数据存储:JSON本地文件 + 自动备份
- UI效果:WPF动画 + 透明窗口
- 窗口透明度和鼠标穿透
- 全局热键注册
- DPI感知支持
- 单实例应用
- .NET 8.0 SDK
- Windows 10/11
- Visual Studio 2022 (可选)
# 编译项目
dotnet build
# 运行项目
dotnet run --project src/FlexToDo.App
# 发布单文件版本
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true- 紧急 (Critical):已过期或6小时内到期 (红色)
- 高优先级 (High):24小时内到期 (橙色)
- 中优先级 (Medium):3天内到期 (黄色)
- 低优先级 (Low):3天以上 (绿色)
- 任务项颜色编码显示紧急程度
- 系统托盘图标状态指示
- 过期任务弹出通知提醒
- 本地JSON文件存储,无需网络连接
- 自动备份机制,保留最近20个备份
- 数据完整性验证
- 损坏文件自动恢复
本项目采用AI辅助编程方式开发,包含以下阶段:
- 🧠 需求分析阶段:通过对话确定功能需求和技术约束
- 🏗️架构设计阶段:确定技术栈选择和模块结构
- 💻 代码实现阶段:协作编写应用代码
- 📋 项目管理阶段:维护功能规划和文档
- 🔍 质量保证阶段:代码审查和规范检查
- 对话式开发:通过交互对话明确需求和实现方案
- 文档同步维护:代码变更时同步更新相关文档
- 技术方案讨论:对不同技术选项进行分析和选择
- 代码质量检查:遵循编码规范和设计模式
当前状态:v1.0 里程碑版本已完成 ✅
核心功能全部实现,正在根据用户反馈持续优化。查看 TODO.md 了解后续开发计划。
- Fork 本项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
- 🐛 Bug 修复
- ✨ 新功能开发
- 📚 文档改进
- 🎨 UI/UX 优化
- ⚡ 性能优化
- 🧪 测试覆盖
欢迎任何形式的贡献,包括对人机协作开发方式的改进建议。
- 完善 Windows 版本功能
- 收集用户反馈和需求
- 持续优化性能和体验
- 考虑跨平台实现方案 (macOS, Linux)
- 记录和分享AI辅助编程经验
- 完善人机协作开发流程
- Issues: GitHub Issues - 问题报告和功能建议
- Discussions: GitHub Discussions - 开放讨论和经验分享
MIT License - 详见 LICENSE 文件
待办事项管理工具应当简洁实用,不干扰正常工作流程。FlexToDo 通过背景穿透机制实现始终可见但不阻碍操作的设计目标。
本项目采用人机协作方式开发,开发过程中 Claude Code Assistant 参与了需求分析、代码编写和文档维护工作。
感谢所有关注和贡献本项目的开发者。