一个基于 WPF 的桌面时钟工具:常驻桌面显示当前时间,并在指定时间前弹出倒计时提醒,帮助你按时休息。
- 桌面悬浮时钟(默认置顶、无边框、可托盘常驻)
- 定时提醒弹窗(支持倒计时秒数、主/副提示文案、是否自动关闭)
- 设置界面可配置:
- 开机启动
- 鼠标穿透开关(可按需启用/停用)
- 主时间窗大小(小 / 中 / 大 / 超大)
- 主时间窗配色(黑底白字 / 白底黑字)
- 提醒任务列表(新增、删除、启用、时间、文案等)
- 浮窗交互增强:
- 鼠标移入/移出动画效果(缩放、阴影、透明度)
- 主浮窗右键菜单与托盘菜单完全一致
dotnet build TimeMaster.sln
dotnet run --project .\TimeMaster\TimeMaster.csproj- 从系统托盘图标右键打开菜单
- 主浮窗右键菜单与托盘菜单一致(显示时钟、设置、倒计时窗口、重启、退出)
- 选择 设置 可进入配置界面
- 当 启用鼠标穿透 时:
- 需要按住
LeftCtrl才可对主浮窗进行左键拖动和右键菜单操作
- 需要按住
- 当 停用鼠标穿透 时:
- 无需按
LeftCtrl,可直接左键拖动和右键菜单操作
- 无需按
项目已内置三个发布配置(TimeMaster/Properties/PublishProfiles):
win-x64-singlefile.pubxml:自包含 + 单文件(包含 .NET 运行时)win-x64-self-contained.pubxml:自包含 + 多文件目录(排障更方便)win-x64-fdd-singlefile.pubxml:框架依赖 + 单文件(体积更小,目标机需安装 .NET Desktop Runtime)
dotnet publish .\TimeMaster\TimeMaster.csproj -p:PublishProfile=win-x64-singlefile输出目录:
TimeMaster\bin\Release\net8.0-windows\publish\win-x64-singlefile\
dotnet publish .\TimeMaster\TimeMaster.csproj -p:PublishProfile=win-x64-self-contained输出目录:
TimeMaster\bin\Release\net8.0-windows\publish\win-x64-self-contained\
dotnet publish .\TimeMaster\TimeMaster.csproj -p:PublishProfile=win-x64-fdd-singlefile输出目录:
TimeMaster\bin\Release\net8.0-windows\publish\win-x64-fdd-singlefile\
仓库已新增两个工作流:
.github/workflows/ci.yml:在push/pull_request时执行Restore + Build.github/workflows/release.yml:在推送 Tag(如v1.0.0)时自动打包并发布 GitHub Release
- 提交并推送代码到主分支
- 创建并推送版本 Tag(建议语义化版本)
git tag v1.0.0
git push origin v1.0.0- GitHub Actions 会自动:
- 发布三个构建产物(singlefile/self-contained/fdd-singlefile)
- 生成
SHA256SUMS.txt - 创建 GitHub Release 并上传 zip 附件
release.yml 支持 workflow_dispatch。手动触发时不会创建正式 Release(因无 Tag),但会把打包结果上传为 Actions Artifact。
提醒任务支持以下字段:
名称:用于区分不同提醒触发时间:格式HH:mm:ss倒计时(秒):在触发前多少秒开始弹窗倒计时文案1:必须包含{0}占位符(会显示剩余秒数)文案2:辅助提示语自动关闭:倒计时结束后是否自动关闭弹窗
- 运行时设置保存到:
%LOCALAPPDATA%\TimeMaster\clock_settings.json - 首次运行会自动写入内置默认提醒(
GoToBed、MorningMeeting)
- .NET 8
- Windows(WPF)
如果这个项目对你有帮助,欢迎提出改进建议或提交 PR。
