Skip to content

li5bo5/PinToDesk

Repository files navigation

PinToDesk - Windows桌面待办事项工具

一个极致轻量的 Windows 桌面待办事项工具。 半透明磨砂风格,常驻系统托盘,悬浮于桌面之上,始终清晰可见。


✨ 功能特点

  • 零干扰界面:无边框半透明设计,悬浮于桌面,不遮挡工作
  • 快速操作:双击空白处添加,悬停条目显示编辑/删除按钮,拖拽重新排序
  • 无字数限制:支持任意长度内容,自动按窗口宽度换行显示
  • 自由缩放:拖拽右下角可自由调整窗口宽高,无纵横比锁定
  • 边界保护:拖动窗口或缩放时不会超出屏幕工作区范围,支持多显示器
  • 细腻滚动条:7px 极细滚动条,仅在鼠标悬停或滚轮操作时自动淡入显示
  • 空列表提示:列表为空时显示「暂无代办」占位文字
  • 数据持久化:自动保存至本地 Markdown 文件,可用文本编辑器直接查看
  • 开机自启:可在系统托盘菜单中一键设置,无需管理员权限
  • 系统托盘:最小化到托盘后台运行,支持显示/隐藏、置顶切换、开机启动、退出

界面

3 0 1

操作演示

default.mp4

🖱️ 操作说明

操作 方法
添加待办 双击列表空白区域 → 输入内容 → 回车确认
取消添加 按 Esc 键
编辑待办 双击某条文字 → 修改 → 回车确认
删除待办 鼠标悬停在条目上 → 点击右侧 ✕ 按钮
拖拽排序 鼠标按住条目不放 → 拖拽至目标位置 → 松开
移动窗口 鼠标拖拽标题栏
调整大小 鼠标拖拽右下角手柄(宽高独立调整)
置顶 / 取消 标题栏 📌 按钮,或托盘右键菜单
置顶穿透 启用置顶后,鼠标点击穿透内容区,仅标题栏保留交互
显示 / 隐藏 双击托盘图标,或托盘右键菜单

🖥️ 系统要求

  • 操作系统:Windows 10 / 11(64 位)
版本 文件大小 运行依赖
SelfContained(自包含版) 170.9 MB 无,下载即用
FrameworkDependent(精简版) 1.24 MB 需预装 .NET 8 Desktop Runtime

💾 数据存储

待办事项以 Markdown 格式自动保存至:

%AppData%\PinToDesk\todos.md

格式示例:

- 完成周报
- 买牛奶
- 回复邮件

可直接用任意文本编辑器查看和手动编辑。


🚀 开机自启动

在系统托盘图标上右键 → 勾选「开机启动」即可。

注意:开机启动路径基于当前 .exe 文件的实际位置。若移动软件文件,需重新勾选以更新路径。


🔧 从源码构建

# 开发调试
dotnet build

# 发布(自包含单文件,无依赖)
dotnet publish PinToDesk.csproj -c Release -r win-x64 --self-contained true ^
  -p:PublishSingleFile=true -p:PublishReadyToRun=true ^
  -p:IncludeNativeLibrariesForSelfExtract=true ^
  -o "Publish/SelfContained"

# 发布(框架依赖单文件,体积极小)
dotnet publish PinToDesk.csproj -c Release -r win-x64 --self-contained false ^
  -p:PublishSingleFile=true ^
  -o "Publish/FrameworkDependent"
  • 技术栈:C# / WPF / .NET 8

友情链接


📋 开发日志

beta1.0

  • 窗口保持黄金比例(1:1.3),无边框设计
  • 标题栏按钮(置顶、最小化、关闭)悬停时显示,默认隐藏
  • 显示/隐藏逻辑优化:根据窗口当前状态动态切换
  • 移除独立输入框,改为双击空白处呼出内联输入框,回车确认,Esc 取消
  • 优化滚动条 UI,使用更窄的自定义滚动条
  • 优化条目间距,增加圆点标识符,全面使用圆角设计
  • 置顶模式:启用时鼠标点击穿透内容区,仅标题栏保留交互
  • 右下角调整手柄显示逻辑与标题栏按钮一致

beta1.1

  • 修复悬停动效:仅当前条目响应,其他条目不变化
  • 系统托盘新增「置顶」/「取消置顶」选项
  • 「显示」/「隐藏」拆分为两个独立按钮,根据窗口状态切换可见性
  • 编辑功能改为弹窗形式,弹窗风格与主窗口一致
  • 修复连续删除时误触发双击添加的问题
  • 修复按钮显示区域判定(悬停在条目附近才显示,而非整个列表)

beta1.2

  • 软件界面标题改为「TodoList」
  • 滚动条:自动隐藏,鼠标悬停或滚轮操作时淡入显示
  • 取消所有输入字数限制,显示时按窗口宽度自动换行
  • 空列表时显示「暂无代办」占位提示
  • 修复自定义 ScrollViewer 中 PART_ScrollContentPresenter 命名问题(修复键盘/滚轮失效)

beta1.3

  • 滚动条宽度精调为 7px,并修复 WPF 系统默认 MinWidth 限制
  • 取消窗口纵横比锁定,支持宽高完全独立调整
  • 窗口边界限制:拖动和缩放均不可超出当前屏幕工作区,支持多显示器智能切换

beta1.4

  • 给系统托盘加上ico高清图标
  • Enter/Esc只用作输入框。
  • 键盘功能在双击编辑事项之后,会在当前条目上出现一个虚线框。这是多余的,需要移除。检查其他的操作有没有相同逻辑。
  • 关闭按钮和最小化按钮功能重复,只保留关闭按钮,关闭后停留在系统托盘就够了

v1.0.1

  • 背景透明度调整:主窗口背景不透明度修改为 40%(#66FFFFFF),让内容背景更显轻量。
  • 置顶切换控制修复:修复了置顶取消失效的 bug,现在可以通过置顶按钮(📍 / 📌)真正切换 Topmost 状态。
  • 完全解耦的系统级鼠标穿透:新增独立的鼠标穿透切换按钮( / ),穿透状态与置顶状态完全独立。
  • 通过定时器轮询与高精度 DPI 物理坐标换算实现“选择性穿透”:当鼠标在“置顶/穿透/关闭”三个按钮上时允许交互与 hover,在其余任意位置(包括列表 and 标题栏背景)点击可直接穿透到下层其他应用或桌面。
  • 托盘右键菜单同步新增“鼠标穿透”控制项,支持与界面双向状态同步。
  • 双击任意位置提交输入:在内联输入框展开输入时,双击除三个功能按钮和输入框本身(保留双击选词)外的窗口任意区域,皆可自动提交并完成保存。

v1.0.2

  • 优化项目结构:重构目录布局,将源码文件移动至根目录,并移除多余的构建输出文件夹,自包含版本现已实现完美的单文件打包发布。

v1.0.3

  • 软件与托盘图标升级:将全新设计的含有多分辨率(包括 256px 等高分尺寸)图标统一用作系统托盘图标以及编译生成的 exe 软件图标。
  • 托盘悬停提示:鼠标悬停在系统托盘图标上时,显示“PTD + 版本号”。
  • 托盘交互优化:鼠标左键单击托盘图标时显示并激活窗口(无论是否置顶、穿透或隐藏),左键双击时隐藏窗口。

About

Win11 风格、极低占用、桌面融合的轻量待办工具。始终挂在桌面,最小化到托盘,支持鼠标穿透,操作图标仅在悬停时显示。

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors