NoFences:免费开源的桌面分区工具,图标各归其位
【免费下载链接】NoFences🚧 Open Source Stardock Fences alternative项目地址: https://gitcode.com/gh_mirrors/no/NoFences
NoFences 是一款免费的开源 Windows 桌面分区工具,把散落的桌面图标收进半透明的分区框里,按类别管理、双击即可打开。适合桌面快捷方式多、又不想为类似商业软件付费的普通用户。
桌面图标多了,日常会发生什么
早上打开电脑,壁纸上挤着几十个图标,找一个"开发工具"文件夹要在三排图标里来回扫视。更麻烦的是:想把一个文件拖进某个文件夹,手一滑点到旁边的应用图标,程序跟着弹出来。图标没有归组,位置也全靠手动摆,每次重启桌面都像刚被翻过一遍。
NoFences 的思路很直接:把图标收进一块块"围栏"分区里。分区贴在桌面上,图标在分区内部自动排成网格,不再散落在壁纸上。
如何安装 NoFences 并完成首次运行
NoFences 没有安装包,从源码编译后直接运行即可。
- 克隆仓库:
git clone https://gitcode.com/gh_mirrors/no/NoFences - 用 Visual Studio 打开仓库根目录的
NoFences.sln,执行"生成解决方案"(需要 .NET Framework 4.8 开发环境)。 - 运行生成目录
bin\Debug\下的NoFences.exe。
你应当看到:桌面中央出现一个名为 "First fence" 的半透明分区,鼠标移上去才完整展开,移开会收成一条标题栏。
NoFences 核心能力:分区能做什么
- 拖放收纳:从资源管理器把文件、文件夹直接拖进分区。分区自动记录文件路径并按网格重新排列。图标越乱越多的用户,整理一次就能省掉每天的翻找时间。
- 双击打开、右键调用系统菜单:双击分区内的图标直接打开;右键图标弹出的是 Windows 原生资源管理器菜单(重命名、属性、压缩等),不是简化的自定义菜单。想让分区图标"像真图标一样用"的人,不用改变操作习惯。
- 锁定与最小化:右键分区可切换 Locked 和 Minify 两项。锁定后分区不能被拖动、缩放或接收拖放,防止整理完又被碰乱;开启最小化后,鼠标移开分区就自动缩成标题栏,省桌面空间。
- 位置、大小自动保存:拖动标题栏移动、拖分区边缘缩放,操作停止几秒后位置尺寸自动写入本地配置,重启程序原样恢复。分区数量多、懒得手动保存布局的用户,这个功能最实用。
- 溢出自动滚动:图标排不下时右侧出现滚动条,用滚轮上下翻看,分区本身不用放大到半屏。
分区布局与实用技巧
- 按使用频率分 3~5 个区:比如"常用工具""项目文档""下载暂存"。区数控制在 5 个以内,桌面留白,找东西比 8 个小区更快。
- 善用最小化收拢:把不常用的分区勾选 Minify,平时只留一条标题栏,需要时鼠标一碰就展开。适合分区多、但同一时间只用 1~2 个的场景。
- 整理完立刻锁定:新建分区、拖入图标、摆好位置后,右键勾选 Locked。适合分区位置已经定型、不希望被误触的用户。
- 备份配置只需复制文件夹:所有分区的位置、尺寸和图标列表都以 XML 存在
%LOCALAPPDATA%\NoFences\下,每个分区一个子目录。换机或重装前复制整个文件夹即可恢复布局。
NoFences 技术速览
项目用 C# 和 .NET Framework 4.8 的 WinForms 编写,面向 64 位系统编译。整体拆成三层:Model负责分区数据的创建、加载与保存(XML 序列化到本地磁盘);主窗体FenceWindow负责自绘图标网格、拖放、右键和滚动等交互;Win32目录封装了桌面级 API,包括毛玻璃模糊、投影、窗口贴底(始终在图标之后、不出现在 Alt+Tab 中)等。程序启动时用互斥量保证单实例,并自动加载已保存的全部分区。
感兴趣可以看这两个文件:Model/FenceManager.cs 是分区增删改查和持久化的全部逻辑,约 80 行;Win32/ShellContextMenu.cs 展示如何调起 Windows 原生右键菜单。
常见问题
Q:如何新建一个分区?A:在任意分区上右键,选择 "New fence",桌面会出现一个新分区,随后右键选 "Rename" 改名。
Q:如何删除一个分区?A:右键该分区选择 "Remove",确认弹窗后删除。注意这会删掉该分区的配置文件(%LOCALAPPDATA%\NoFences\下对应目录),分区内的文件本身不会被删除。
Q:配置文件放在哪里,手动改会有用吗?A:%LOCALAPPDATA%\NoFences\下每个分区一个文件夹,内含__fence_metadata.xml。程序关闭时改 XML 是有效的,但建议通过界面操作,避免属性名拼错。
Q:分区里的文件被我移走或删除了,图标会怎样?A:绘制时会检查文件是否还存在,不存在的项目直接跳过,不会报错,也不影响其他图标。
Q:如何调整标题栏高度?A:右键分区选择 "Title size",在弹窗中拖动滑杆(范围约 16~100 像素),标题栏字号会随高度同步缩放。
Q:卸载需要做什么吗?A:它是绿色程序,直接关掉进程即可。想彻底清理时删除%LOCALAPPDATA%\NoFences\文件夹和编译产物。
延伸资源
- README.md:项目说明页,一句话点明来历——作者不愿为商业分区软件付费,自己写了一个开源替代。
- Model/FenceInfo.cs:分区数据模型,位置、尺寸、锁定、最小化等字段一目了然,注释提醒了属性名不能改(用于 XML 序列化)。
- Win32/DesktopUtil.cs:把分区窗口"贴"在桌面图标的实现,理解 NoFences 如何做到不挡壁纸交互。
- Util/ThumbnailProvider.cs:图标异步加载逻辑,文件图标不即时阻塞界面绘制的原因。
NoFences 的价值就是把桌面从"图标停车场"变成"分区收纳架",源码不到千行,从克隆仓库到看到第一个分区,几分钟就够。
小贴士:分区的半透明黑底是绘制代码里写死的固定透明度,想换配色可以直接改FenceWindow.cs里 Paint 事件中的背景色,重新编译即可。
【免费下载链接】NoFences🚧 Open Source Stardock Fences alternative项目地址: https://gitcode.com/gh_mirrors/no/NoFences
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考