我有一个简单的应用程序。当你点击一个按钮时,任务栏图标会改变。当我从Visual Studio运行这个应用程序时,一切都正常,但是当我发布WPF应用程序时,任务栏图标不起作用(没有图标)。
构建操作设置为“嵌入资源/始终复制”,我已经测试过“资源”,但它不起作用。
var iconUri = new Uri("pack://application:,,,/images/internet_connection.ico", UriKind.RelativeOrAbsolute);
this.Icon = BitmapFrame.Create(iconUri);
框架左上角的图标会发生变化,但任务栏中的图标没有变化。
有人能帮我吗?
@编辑,
多亏了@Pavel的评论,我已经解决了问题。但现在还存在一个问题:
当我在Visual Studio中运行它时,我这样做:
var iconUri = UriHelper.GetUri(this.GetType(), "images/local_network.ico");
this.Icon = BitmapFrame.Create(iconUri);
图标会发生变化。但在发布版本中,它不会改变。
@@编辑,
好的,这是我按下按钮时的代码:
var iconUri = UriHelper.GetUri(this.GetType(), "images/internet_connection.ico");
this.Icon = BitmapFrame.Create(iconUri);
mNotifyIcon = new NotifyIcon
{
BalloonTipText = "The app has been minimised. Click the tray icon to show.",
BalloonTipTitle = "The App",
Text = "The App",
Icon = BitmapFrame.Create(iconUri)
};
BitmapImage image = new BitmapImage();
image.BeginInit();
image.UriSource = UriHelper.GetUri(this.GetType(), "images/internet_connection.png");
image.EndInit();
TaskbarItemInfo = new System.Windows.Shell.TaskbarItemInfo() { Overlay = image };
它是用来干什么的:
在从VS中运行时:任务栏中的图标会改变,叠加功能正常工作,应用程序右上角的图标也会改变。
在编译后运行exe时:任务栏中的图标不会改变,叠加功能正常工作,应用程序右上角的图标会改变。
有人能解释一下这是为什么吗?