当触发某些事件时,更改windows应用程序图标

本文关键字:更改 windows 应用程序 图标 事件 | 更新日期: 2023-09-27 18:02:03

我只使用一个现有的例子:当我们登录到Microsoft Lync时,如果状态集可用,则任务栏中的应用程序图标将显示为绿色(默认图标右下角的一个小框)。设置为忙时,图标变为红色。

我想把这个概念应用到我的应用程序中。到目前为止,我所做的是,当某个事件被触发时,我将应用程序的默认图标更改为所需的图标,如下所示:

myWindow.Icon = BitmapFrame.Create(Application.GetResourceStream(new Uri("/Resources/desiredIcon.png", UriKind.RelativeOrAbsolute)).Stream);

它对我有效。我只是想知道,除此之外,根据我的情况,有没有更好的方法来改变图标?还是说我所做的已经足够好了?

当触发某些事件时,更改windows应用程序图标

在您的不完整代码示例中,app是什么?在WPF中,为特定WPF窗口设置图标的正确方法是设置Window.Icon属性。如果您的变量app实际上是对您设置图标的Window对象的引用,那么您似乎正在做正确的事情。

如果没有一个好的,最小的完整的代码示例清楚地显示您实际在做什么,就不可能确定。

请注意,在Windows中,也可以在窗口的图标上添加"叠加"。这是一种不同的方法,在某些情况下更有用。据我所知,WPF没有提供任何机制来访问这个Windows特性,但是您可以使用COM与Windows shell API的互操作来实现它。下面是一些示例代码:Windows 7任务栏SetOverlayIcon从WPF应用程序不工作