【发布时间】:2011-10-30 00:30:03
【问题描述】:
我在 .net 3.5 sp1 中有一个 WPF 应用程序,我会定期更改主窗口图标。在 vs 托管进程下运行时,我看到任务栏图标发生变化,当直接从 bin/Debug 或 bin/Release 文件夹运行时,但在从 \Program Files 安装和运行二进制文件时却没有!窗口的标题栏图标仍然正确更改...
我是这样设置图标的:
Uri imageSource = new Uri("pack://application:,,,/MyProject;component/Images/test.ico");
this.Icon = BitmapFrame.Create(imageSource);
为什么任务栏图标没有变化?
我确实有一个 ApplicationIcon 集。这是任务栏图标显示的内容,而不是更改为我设置的内容。根据msdn,ApplicationIcon 只是一个后备,以防 this.Icon 未设置。
我没有固定任务栏图标。
主窗口不是应用程序的启动窗口。事实上,没有启动窗口。该窗口从系统托盘图标打开。
上面提到的 ApplicationIcon 和 test.ico 的图标都将它们的编译操作设置为 Resource。
WiX 安装程序没有对 exe 或图标执行任何特殊操作。 exe是这样引用的:
<File Id="MyExe" Name="$(var.MyProject.TargetFileName)"
Source="$(var.MyProject.TargetPath)" KeyPath="yes" Vital="yes" />
我目前正在查看AppUserModelID,看看这是否可以解决这个问题,但似乎没有必要以这种方式覆盖 Windows 7 的默认行为。我有两个由 WiX 创建的快捷方式。一个在开始菜单的程序文件夹中,一个在开始菜单的启动文件夹中。
2011 年 8 月 18 日更新:
好吧,这只是奇怪,奇怪,奇怪。
我开始尝试解决另一个烦恼,即我的窗口在我不希望它时允许任务栏固定(这是默认的 win7 任务栏闪烁)。所以我通过 HKCR\Applications\MyEXEName.exe 下的 regedit 手动设置 IsHostApp REG_BINARY 0000。为了使更改生效,我必须更新引用该应用程序的快捷方式(或者我可以重新安装)。瞧,下次我启动应用程序时,不仅固定功能消失了,而且任务栏图标也正确更新了!!!
有人能解释一下这是如何解决问题的吗?
【问题讨论】:
标签: c# wpf windows-7 wix icons