Repository navigation
find-font v0.3.0-alpha
Pre-release
Pre-release
·
9 commits
to main
since this release
候选版本。Windows 10 1803+ / Windows 11,绿色版免安装。
下载
| 文件 | 说明 |
|---|---|
find-font-0.3.0-alpha-win-x64.zip |
解压后双击 FindFont.exe |
需要 .NET 8 桌面运行时(Desktop Runtime)。没装的话引导器会弹框说明并给出下载链接,不会静默失败。
这一版修了什么
前两版有三个会伤到用户系统的缺陷,这个版本全部修掉:
- 卸载不再删除系统字体。 以前选中任意字体点卸载都会把文件删掉,包括 Arial 这种系统自带的。现在维护一份「本工具装过什么」的台账(
%ProgramData%\find-font\installed.txt),只有台账里的文件才删,而且走回收站;系统自带字体只清除注册表登记,确认框会提前写清是哪一种。 - 网页字体明确拒装。
.woff/.woff2/.eot是浏览器格式,装进C:\Windows\Fonts系统根本不认,以前会制造「装了但看不见」的假成功。现在在碰系统目录之前就拒绝,并说明原因和该转成什么格式。 - 注册表不再写重复项。 以前同一个字体登记两条值(裸名 + 带类型名),现在幂等:已存在指向同名文件的值就跳过,值名统一为
名字 (TrueType|OpenType|TrueType collection)。
另外补上了应用图标(16–256 七档),发布包里不再带 70 KB 的 pdb。
功能
- 全字体预览:把本机所有字体按真实字形渲染成缩略图,中英文混排可见
- 实时搜索:300 ms 防抖,匹配显示名 / 本地化名 / 中文名 / 家族名 / 文件名 / 样式名
- 筛选:中文 / 西文 / 其他 + 常规 / 粗体 / 斜体 + 只看失效登记
- 多字体对比:Ctrl 多选 1–3 个字体同屏对照,改文字实时重渲染
- 安装 / 卸载:走 UAC 提权微进程,取消提权不会留下半成品
- 失效登记清理:删掉注册表里指向缺失文件的僵尸条目,不动任何字体文件
实现要点
- 全程离屏
FormattedText+RenderTargetBitmap出冻结位图,XAML 里不出现FontFamily绑定 —— 规避 WPF 加载上千套字形导致的内存暴涨(1333 个字体约 160 MB) - 直读 sfnt 的
name/OS/2/head表补全家族名与字重,0.33 ms/文件;不依赖GlyphTypeface(43 ms/文件) VirtualizingStackPanel+VirtualizationMode=Recycling;只有被选中的行才渲染 220px 大样本,位图缓存按 96 MB 字节预算淘汰
已知限制
- 语言归属靠名字关键词推断,不解析字符表,冷门字体会归到「其他」
- 旧式
.fon位图字体不是 sfnt 容器,以文件名做显示名 .ttc/.otc只读第一个字体成员- 只扫描
HKLM/HKCU下的标准字体注册表项 - 卸载保护依赖台账:本版之前安装的字体没有台账记录,卸载时只会清登记、不会删文件(保守方向)