wpf - 适用于经典 WPF 桌面应用程序的 Windows 10 / 8 开始菜单磁贴图标大小
问题描述
我实际上想知道如何控制在 Windows 10 开始菜单中作为磁贴快捷方式出现的“经典”WPF 应用程序的图标大小(或通常:使用哪个图标?)。
我在 SO 上只发现很少有这样的帖子,但唯一得到的答案是,相应的机制仅适用于“现代”Windows 应用程序。就活动磁贴和基于清单的定义而言,这可能是正确的。
但是,必须有一种触发“更大”图标的方法。具体示例:我构建了一个 WPF 应用程序,当固定到开始菜单时,它只显示一个小图标。这是所有“经典”应用程序的情况 - 请参阅“Orca.exe”数据库编辑器快捷方式的附件图像。我确实相信有一种方法可以实现更大的图标,因为我注意到 Mozilla Thunderbird 应用程序(这是一个“经典”应用程序)出现了这个(自定义背景颜色和大图标大小)。
有没有人知道如何实现这一目标并可以分享他的知识?我已经从可执行文件/快捷方式中提取了使用过的图标并进行了比较,但两者都只提供最大 256px 的标准图标大小,没有区别。
谢谢!
解决方案
这实际上非常简单,但我记得自己很难找到文档(或者意识到这对于“经典”应用程序非常有效):
参考:MS docs - 如何自定义桌面应用程序的开始屏幕磁贴
您可以使用名为[Software].VisualElementsManifest.xml的 xml 文件控制开始菜单图块的描述行为和外观,其中 [Software] 必须替换为 .exe 文件的名称(不带扩展名),例如Thunderbird.VisualElementsManifest .xml。正如您已经提到的,您可以查看 Thunderbird 文件夹以获取其内容的工作示例。基本上它看起来像这样:
<Application xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
<VisualElements
ShowNameOnSquare150x150Logo='on'
Square150x150Logo='VisualElements\VisualElements_150.png'
ForegroundText="dark"
BackgroundColor="#FF0000"/>
</Application>
您甚至可以通过创建适当的资源文件来为适当的缩放、本地化和可访问性提供额外的选项和资产, MS 的文档对此有分步说明。
请注意,文档会警告它已被弃用的内容。我不知道这项工作需要多长时间,或者他们是否计划在未来完全删除这种瓷砖规范方式,但到目前为止,它在所有版本的 W10 上都运行得非常好。
注意#2:如果您使用现有安装/快捷方式尝试此操作,则必须刷新相应快捷方式的修改时间戳,然后再次取消固定/固定磁贴,否则外壳不会注意到新定义文件的存在. 在 PS 中执行此操作的最简单方法(在系统文件夹中修改快捷方式时以管理员身份运行):
(ls "$env:ProgramData\Microsoft\Windows\Start Menu\Programs\[ShortcutName].lnk").lastwritetime = get-date
或从目标文件夹中的 CMD:
copy /b [ShortcutName].lnk +,,
推荐阅读
- git - Yocto 后处理功能中的克隆存储库
- powershell - 在 Powershell 中,如何通过将字符串附加到另一个文件的内容来构建文件?
- c++ - 仅在可变参数模板类中调用现有函数
- reactjs - 卸载反应钩子中的循环行为
- azure-devops - 显示来自 Azure Repos(Github Pages 等效项)的前端 UI
- javascript - 如何访问动态分配的图像?
- python-3.x - 看起来像括号下面有两个点的符号是什么?我需要按哪些按钮才能使用它?
- asp.net-core - 是否可以将来自一个配置源的占位符替换为 Microsoft.Extensions.Configuration 中另一个配置源的值?
- angular - TypeError:无法读取角度未定义的属性“userData”
- php - 用 OpenSSL 替换 Mcrypt - 这可能吗