我只使用现有示例:当我们登录Microsoft Lync时,如果状态集可用,任务栏中应用程序的图标将显示为绿色(默认图标右下角的一个小框)。设置为忙时,图标将变为红色。
我想将这个概念应用到我的应用程序中。到目前为止我所做的是当某个事件被触发时,我将应用程序默认图标更改为所需的图标,如下所示:
myWindow.Icon = BitmapFrame.Create(Application.GetResourceStream(new Uri("/Resources/desiredIcon.png", UriKind.RelativeOrAbsolute)).Stream);
它对我有用。我只想知道除此之外,还有其他更好的方法根据我的情况更改图标。或者到目前为止我做的还不错吗?
答案 0 :(得分:0)
在您的不完整代码示例中,app
是什么?在WPF中,为特定WPF窗口设置图标的正确方法是设置Window.Icon
属性。如果您的变量app
实际上是对您为其设置图标的Window
对象的引用,那么您似乎正在做正确的事情。
如果没有a good, minimal, complete code example清楚地显示您实际在做什么,就无法确定。
请注意,在Windows中,还可以添加" overlay"到窗口的图标。这是一种不同的方法,对某些情况更有用。据我所知,WPF没有提供任何访问此Windows功能的机制,但您可以使用与Windows shell API的COM互操作来实现。此处显示了一些示例代码:Windows 7 Taskbar SetOverlayIcon from WPF app doesn't work