用途:为 Windows 应用制作和维护图标。图标的唯一来源是 git 中的一张 SVG:Icon/AppIcon.svg,画在正方形画布上(模板为 256 x 256)。对于未打包(unpackaged)的 Windows 应用,系统不会给图标添加底板、遮罩或阴影,所画即所得,任务栏在各尺寸下显示的就是该图形。
主要能力:tools/make-icon.ps1 使用 tools/IconTool(Svg.Skia)把 SVG 渲染为 src/<App>/Assets/AppIcon.ico(16、20、24、32、40、48、64、256 px)和 AppIcon.png(256 px)。当 SVG 有变化时,build.ps1 会自动运行该脚本。make-icon.ps1 -Review 还会输出一张评审图:每个尺寸分别放在浅色和深色任务栏与开始菜单配色上,小尺寸放大 4 倍且不做平滑处理,以便查看真实像素。.ico 用作 exe 图标(csproj 中的 ApplicationIcon:资源管理器、开始菜单、任务栏固定项)及窗口图标(AppWindow.SetIcon);.png 用于 TitleBar 控件中的图标。
小尺寸处理:在 100% 缩放下,Windows 在标题栏、上下文菜单和系统托盘中以 16 px 显示图标,任务栏为 24 px。256 px 图形直接缩到 16 px 会使细线变灰糊,因此可为 16 px(必要时加 20、24、32 px)提供独立绘制:Icon/AppIcon-16.svg 等替代按比例缩放的主图,make-icon.ps1 会为每个使用到的小尺寸打印“16 px from AppIcon-16.svg”;若不打印,说明 tools/IconTool/Program.cs 版本较旧,需从 new-windows-app 模板复制。小尺寸应使用对应尺寸的画布(viewBox="0 0 16 16"),边缘落在整像素上,线宽 1 或 2 px,保留大图轮廓与颜色,舍弃高光、第三行文字等无法存活的细节。
设计要点:参考微软应用图标指南——一个想法、最多两个隐喻,写实隐喻优于抽象;不要文字和字母;正视绘制;形状简单、轮廓清晰;扁平分层,层间可用柔和阴影分隔,细节只放顶层;渐变最多一两档、约 120 度、光从左上来,不要像反射的紧渐变;颜色取深、中、浅,且至少一半图标在浅色与深色背景上都有 3:1 对比度(黄色在浅色上不佳,红色在深色上困难);透明背景最佳,品牌色底板也可但需在两种背景上检查;只用自己的绘制,不用 Segoe Fluent Icons 字形;与任务栏相邻应用区分开。
使用流程:先读 docs/BRIEF.md,用一行分别写出三个图标概念(对象、颜色、图层),与用户选定一个或选在 16 px 下最易识别的;然后写 Icon/AppIcon.svg(正方形 viewBox、填充形状、linearGradient),检查 viewBox 为正方形;运行 tools/make-icon.ps1 -Review,读取生成的评审 PNG,确认 256 px 在四种背景上都清晰、16 和 24 px 仍可辨认,若有模糊则补写 Icon/AppIcon-16.svg 或 -24.svg;迭代两三轮,每轮只改一处;最后 ./build.ps1 -Open 安装并查看任务栏与开始菜单,若仍显示旧图标可用 ie4uinit.exe -show 刷新缓存,必要时取消固定再重新固定。
适用场景与限制:适用于新的 Windows 应用图标制作、旧应用迁移(复制 Icon/、tools/make-icon.ps1、tools/IconTool/ 及 build.ps1 的图标块与 csproj 的 ApplicationIcon 和 Content 行);打包(MSIX)应用需要按尺寸和主题提供 PNG 资源、把已有 .ico 或 PNG 转成 SVG、随主题或状态变化的窗口图标等属于其他情况(见 more-cases.md)。注意事项:旧版 build.ps1 只检查 AppIcon.svg,如果只改了小尺寸 SVG 需手动运行 make-icon.ps1;exe 在构建时嵌入 .ico,重新渲染后必须再次运行 build.ps1;SVG 中的文字依赖本机字体,建议转为路径或不使用;矩形、圆、路径、渐变和透明度渲染可靠,使用滤镜、遮罩或裁剪路径后要检查评审图;Windows 会从 .ico 中选精确尺寸,否则取稍大者缩小,125% 缩放下任务栏需要 30 px 而会拿到 32 px 缩放,手工调整的 32 px 图也有帮助。完成标准为 make-icon.ps1 -Review 成功、评审图中四种背景及 16/24 px 下图标清晰、无文字与系统字形、任务栏和开始菜单显示新图标。