所有应用程序窗口的WPF图标

时间:2009-12-10 15:06:04

标签: wpf icons window

可以设置一个图标,以便在当前应用的每个窗口中使用它。所以我设置了一次(不是手动在每个窗口上)..?

5 个答案:

答案 0 :(得分:94)

关于这个问题的一个很好的参考是MSDN。您拥有应用程序图标(桌面图标)的状态,以及每个窗口的图标。

WPF窗口始终显示图标。如果未通过设置Icon提供一个,则WPF会根据以下规则选择要显示的图标:

  1. 如果指定,请使用装配图标。

  2. 如果未指定程序集图标,请使用默认的Microsoft Windows图标。

  3. 社区内容参考:

    “小贴士:如果您设置应用程序图标并希望在窗口中看到它 - 如果从VS运行调试则不会显示。在外部运行或不附加(ctrl + f5)时,图标会按预期显示。 “

答案 1 :(得分:16)

在“资源”部分的“应用程序”选项卡上的项目属性中设置图标。此图标将是应用程序中所有窗口的默认图标。

答案 2 :(得分:2)

在VS2010下,打开主应用程序可执行文件的属性,然后打开“应用程序”选项卡。在参考资料部分的“图标和清单”下设置图标。

要在VS2010下调试时看到图标,您需要打开“调试”选项卡并取消选中“启用Visual Studio主机进程”选项,否则您只会在大多数窗口中看到默认图标。

我认为图标加载代码被托管进程搞糊涂了,并且正在查看“someapplication.vshost.exe”而不是“someapplication.exe”图标。

这看起来像在VS2013中已修复。

答案 3 :(得分:2)

您也可以尝试设置自己的图标:

private void Page_Loaded_1(object sender, RoutedEventArgs e)
        {
            Uri iconUri = new Uri(@"C:\Apps\R&D\WPFNavigation\WPFNavigation\Images\airport.ico", UriKind.RelativeOrAbsolute);
            (this.Parent as Window).Icon = BitmapFrame.Create(iconUri);
        }

答案 4 :(得分:1)

"启用Visual Studio托管过程的原因"使图标无效是因为它是使用vshost.exe启动的,因此无法正确读取清单。 如果清单中有其他内容,例如regfree ocx控件等需要清单加载的话,情况也是如此。