【问题标题】:Change windows application icon when certain event is triggered触发特定事件时更改 Windows 应用程序图标
【发布时间】:2015-07-10 04:05:31
【问题描述】:

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

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

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

它对我有用。我只想知道除此之外,有没有其他更好的方法可以根据我的情况更改图标。还是对我目前所做的工作来说足够好?

【问题讨论】:

    标签: c# wpf icons


    【解决方案1】:

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

    如果没有a good, minimal, complete code example 清楚地显示您实际在做什么,就无法确定。

    请注意,在 Windows 中,还可以为窗口图标添加“覆盖”。这是一种不同的方法,在某些情况下更有用。据我所知,WPF 不提供任何机制来访问此 Windows 功能,但您可以使用 COM 互操作与 Windows shell API 来实现。一些示例代码如下所示:Windows 7 Taskbar SetOverlayIcon from WPF app doesn't work

    【讨论】:

    • 嗨 @Peter,'app' 只是窗口的名称,我应该更改为其他名称,以免造成任何混淆
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多