为 MS Store 打包的 Winforms 应用程序在任务栏上显示不正确的图标
Winforms app packaged for MS Store displays incorrect icon on Taskbar
我使用“Windows 应用程序打包项目”(WAPP ---以前的“桌面桥”)在 Visual Studio 中打包了我的 Winforms 应用程序。当我测试由 WAPP(.appxbundle 文件)创建的商店安装时,应用程序安装和启动正确,但 Windows 任务栏中显示的应用程序图标不正确(它显示我的应用程序图标的一个非常小的版本,带有?蓝色方块?背景)。
我用于我的应用程序的图标文件提供以下图像尺寸(透明背景):16x16、24x24、32x32、48x48 和 256x256。
应用程序的主窗体(这是启动时显示的唯一窗体)在窗体设计器中设置了以下属性:
ShowInTaskbar=True
ShowIcon=True
Icon=*my icon file*
我的应用程序的属性页面 'Application>Icon' 设置为与上述相同的图标文件。
此外,在解决此问题时,我尝试将图标文件添加到我的应用程序的 'Resoures>Icons' 并将以下代码添加到主窗体的 Form_Load 事件以在 [=41= 处重新应用该文件]-时间:
Me.Icon = My.Resources.MyIcon7
使用此 运行 时间代码,应用商店应用会继续在任务栏中显示带有蓝色背景的 small/incorrect 图标图像。
Windows“开始”菜单中显示的图标是具有正确透明背景的正确(较大)图标。
此外,如果我使用 .exe(在 Visual Studio 中构建应用程序时在此处 'bin\Release\myapp.exe' 创建)启动我的应用程序的 'non-Store' 版本,任务栏中会显示正确的图标。
非常感谢!
好的,我明白了!这是解决方案...
应用程序的 MS Store 安装版本使用的图标必须在“Windows 应用程序打包项目”(以前称为“桌面桥”)中提供。
要访问 and/or,请提供这些图标:
- 在 Visual Studio 中转到解决方案资源管理器并展开您添加到解决方案的“Windows 应用程序打包项目”的节点。
- 在展开的节点中找到并双击 Package.appxmanifest。这将打开清单 GUI
- 单击清单 GUI 中的视觉资产选项卡
- 循环浏览左侧的图像类别,确保您对所有图像都满意。注意:任务栏的图像在应用程序图标类别下
此外,出现在任务栏图标上的蓝色背景显然是 Windows 主题的默认行为。 Windows 检查您为应用程序提供的图标,并确定该图标是否与当前主题的任务栏颜色形成鲜明对比。如果 Windows 认为您的图标在当前主题下看起来不好看,它会创建并显示图标的“镀层”版本,而不是常规的“未镀层”版本。镀上图标后,图标会略微缩小并放置在方形蓝色背景上(在我看来,这看起来很丑陋且不合适)。要覆盖此默认行为并为浅色 Windows 主题提供您自己的特定于主题的图标,请将新图标文件添加到资产文件夹(在解决方案资源管理器中),文件名中包含文本“lightunplated”。例如,我的资产文件夹包含以下图标文件:Square44x44Logo.targetsize-24_altform-unplated.png 当主题设置为深色时,它被用作任务栏图标。我创建了一个名为:Square44x44Logo.targetsize-24_altform-lightunplated.png 的新图标文件,并通过右键单击文件夹并选择“添加”>“现有项目”将其添加到“资产”文件夹。添加后,当主题设置为浅色时 windows 使用新图标,而不是 windows 的“镀”。
我使用“Windows 应用程序打包项目”(WAPP ---以前的“桌面桥”)在 Visual Studio 中打包了我的 Winforms 应用程序。当我测试由 WAPP(.appxbundle 文件)创建的商店安装时,应用程序安装和启动正确,但 Windows 任务栏中显示的应用程序图标不正确(它显示我的应用程序图标的一个非常小的版本,带有?蓝色方块?背景)。
我用于我的应用程序的图标文件提供以下图像尺寸(透明背景):16x16、24x24、32x32、48x48 和 256x256。
应用程序的主窗体(这是启动时显示的唯一窗体)在窗体设计器中设置了以下属性:
ShowInTaskbar=True
ShowIcon=True
Icon=*my icon file*
我的应用程序的属性页面 'Application>Icon' 设置为与上述相同的图标文件。
此外,在解决此问题时,我尝试将图标文件添加到我的应用程序的 'Resoures>Icons' 并将以下代码添加到主窗体的 Form_Load 事件以在 [=41= 处重新应用该文件]-时间:
Me.Icon = My.Resources.MyIcon7
使用此 运行 时间代码,应用商店应用会继续在任务栏中显示带有蓝色背景的 small/incorrect 图标图像。
Windows“开始”菜单中显示的图标是具有正确透明背景的正确(较大)图标。
此外,如果我使用 .exe(在 Visual Studio 中构建应用程序时在此处 'bin\Release\myapp.exe' 创建)启动我的应用程序的 'non-Store' 版本,任务栏中会显示正确的图标。
非常感谢!
好的,我明白了!这是解决方案... 应用程序的 MS Store 安装版本使用的图标必须在“Windows 应用程序打包项目”(以前称为“桌面桥”)中提供。
要访问 and/or,请提供这些图标:
- 在 Visual Studio 中转到解决方案资源管理器并展开您添加到解决方案的“Windows 应用程序打包项目”的节点。
- 在展开的节点中找到并双击 Package.appxmanifest。这将打开清单 GUI
- 单击清单 GUI 中的视觉资产选项卡
- 循环浏览左侧的图像类别,确保您对所有图像都满意。注意:任务栏的图像在应用程序图标类别下
此外,出现在任务栏图标上的蓝色背景显然是 Windows 主题的默认行为。 Windows 检查您为应用程序提供的图标,并确定该图标是否与当前主题的任务栏颜色形成鲜明对比。如果 Windows 认为您的图标在当前主题下看起来不好看,它会创建并显示图标的“镀层”版本,而不是常规的“未镀层”版本。镀上图标后,图标会略微缩小并放置在方形蓝色背景上(在我看来,这看起来很丑陋且不合适)。要覆盖此默认行为并为浅色 Windows 主题提供您自己的特定于主题的图标,请将新图标文件添加到资产文件夹(在解决方案资源管理器中),文件名中包含文本“lightunplated”。例如,我的资产文件夹包含以下图标文件:Square44x44Logo.targetsize-24_altform-unplated.png 当主题设置为深色时,它被用作任务栏图标。我创建了一个名为:Square44x44Logo.targetsize-24_altform-lightunplated.png 的新图标文件,并通过右键单击文件夹并选择“添加”>“现有项目”将其添加到“资产”文件夹。添加后,当主题设置为浅色时 windows 使用新图标,而不是 windows 的“镀”。