Windows11下WinForms窗体图标靠近任务栏溢出区时切换为EXE图标
Windows 11下VB.NET WinForms应用任务栏图标切换异常问题
运行于Windows 11的VB.NET WinForms(.NET Framework 4.0)应用,在任务栏图标拥挤时出现特定的图标切换行为。
代码示例
Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Try Me.Icon = New Icon("C:\Users\User1\source\repos\ForumSampleIcon\ForumSampleIcon\bin\Debug\Icons\resumelist.ico") Catch ex As Exception MsgBox(ex.Message) End Try End Sub End Class
问题现象
在窗体加载事件中通过Me.Icon设置任务栏显示的应用图标后,Windows会将超出任务栏容量的图标移入溢出菜单。当应用图标位于溢出区三点按钮旁时,任务栏显示的图标会从指定的窗体图标切换为可执行文件(.exe)图标;当任务栏图标数量减少、溢出托盘消失后,图标自动恢复为原窗体图标。
重现步骤
- 创建WinForms应用,在窗体加载事件中按上述代码设置图标
- 进入任务栏设置,将“任务栏对齐”改为左侧,“合并任务栏按钮并隐藏标签”改为“从不”
- 打开多个应用,直到Windows 11任务栏出现溢出
- 启动该WinForms应用
结果与预期
实际结果:应用被移入溢出区时图标显示正常;但当应用位于溢出区旁(三点按钮附近)时,图标变为EXE图标。
预期行为:应用图标位于任务栏溢出区旁时,保持显示窗体设置的图标。
已排查方案(均无效)
- 在窗体
OnActivated事件中重新设置Me.Icon或通过SendMessage设置图标 - 切换DPIAwareness为
true/false - 改用微软文件资源管理器图标(排除图标格式问题)
疑问
为何Windows 11中会出现此行为?
(截图说明:任务栏溢出状态下,应用图标位于三点按钮旁时显示为EXE图标)
已参考微软技术论坛相关问题帖,但未解决问题。
内容的提问来源于stack exchange,提问作者gpt researcher
相关产品推荐
相关产品推荐

