设置wpf应用程序的图标(VS 08)


125

在进一步介绍之前,我将提及以下几种解决方案:

如何在Visual Studio 2008中为我的应用程序设置图标?

从VS 05中的资源设置应用程序图标

我正在尝试为我的应用程序设置一个图标。

AFAIK,我可能需要3张图像?

  • 1图片是单击.exe时资源管理器中的实际图像(exe的缩略图)
  • 左上角有1张图像(小)(16 x 16?不确定吗?)
  • 开始菜单停靠栏中的1张图片,位于应用程序左侧(也许是32x32?还是不确定)

这样很好。

现在,我选择了一个图标。在以上情况之一下如何使用它?

我尝试将其添加到资源中,似乎没有任何反应。在第一个SO解决方案之后,

“首先进入资源视图(从菜单:视图->其他窗口->资源视图)。然后在资源视图中浏览资源(如果有)。如果已经有图标类型的资源(由Visual Studio添加),则打开并编辑它。否则,右键单击并选择“添加资源”,然后添加一个新图标。”

资源视图为空,我无法右键单击该视图。

如果右键单击解决方案>属性>资源>我可以添加图标图像,但是它不会显示在上面列出的任何位置。(或我能看到的任何地方)

1)如何为WPF应用程序设置应用程序图标?


实际上就是Win 7 Talk;XP我们只有两个我想?16 x 16和exe的大缩略图(不确定大小)
男爵

对于感兴趣的任何人,我设置一个图标,图像为64 x 64,其他所有(较小的尺寸)都是通过缩放我提供的原始图像自动完成的。
男爵

检查出的超级用户这个问题superuser.com/questions/142731/...用于获取内置的Windows图标到您的应用程序很容易。
克里斯·马里西克

Answers:


163

假设您使用VS Express和C#。该图标在项目属性页面中设置。要打开它,请在解决方案资源管理器中右键单击项目名称。在打开的页面中,有一个“应用程序”选项卡,在此选项卡中您可以设置图标。


2
谢谢您的回答...我发现的所有其他内容都可以解释资源中的混乱情况,但是遵循您的解决方案资源完全是一个人,只能在“应用程序”选项卡中进行设置。欢呼声
男爵

61
是。这对我有用。但是,似乎从VS调试器运行应用程序时(即按F5键),仍显示“通用”图标。但是,不使用调试器(即ctrl + f5,或从桌面等)运行会显示自定义图标,这与预期的一样。
汤姆(Tom)

7
这是因为,当调试器运行您的代码时,它使用构建的vshost.exe版本(以帮助调试),该版本使用默认的应用程序图标,而不使用“应用程序”选项卡中设置的图标,因为这是为yourapplication.exe设置的
VisualBean 2015年

95

@ 742的答案效果很好,但是从VS调试器运行时,如注释中所述,仍显示通用图标。

如果即使在按F5键时也想要显示图标,则可以在主窗口中添加:

<Window x:Class="myClass"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Icon="./Resources/Icon/myIcon.png">

您在其中指明图标的路径(图标可以是*.png*.ico。)

(请注意,您仍然需要设置“应用程序图标”,否则它仍将是资源管理器中的默认图标)。


8
设置两者都很好,因为似乎图标要求同时出现在窗口和EXE文件中。
Vimes

3
只需确保将图标设置为“ Resource”的构建操作即可,如@AdamDylla所说:stackoverflow.com/a/39897641/1703887
csrowell

4

注意:(用您的实际图标文件名替换file.ico

  1. 将图标添加到具有“资源”构建动作的项目中。
  2. 在项目属性中,将应用程序图标设置为file.ico。
  3. 在主窗口XAML中设置:Icon=".\file.ico"在窗口上

3

在获得带有消息的XamlParseException之后:使用给定的解决方案在'System.Windows.Baml2006.TypeConverterMarkupExtension中提供值',以编程方式设置图标对我有效。这是我的方法:

  1. 将图标放在项目目录中的文件夹< icon_path >中
  2. 模拟解决方案中的文件夹路径< icon_path >
  3. 在您创建的解决方案文件夹中添加一个新项目(您的图标)
  4. 在WPF窗口的代码后面添加以下代码:

图标=新的BitmapImage(新的Uri(“ < icon_path >”,UriKind.Relative));

如果您在实施此解决方案时遇到任何困难,请告知我,以便我们提供帮助。


解决此错误消息的方法很简单,就是将图标设置为“ Resource”的生成操作,如@AdamDylla所说:stackoverflow.com/a/39897641/1703887
csrowell

0

您也可以尝试以下操作:

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);
    }
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.