Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行时C#.NET的WPF上没有显示图标?_C#_.net_Wpf - Fatal编程技术网

运行时C#.NET的WPF上没有显示图标?

运行时C#.NET的WPF上没有显示图标?,c#,.net,wpf,C#,.net,Wpf,我有一个WPF表单,我正在尝试添加一个图标。在属性菜单中,我从我的资源文件夹中选择了我的图标。在“设计”视图中,图标显示在其应显示的位置。当我运行应用程序时,它会显示默认视图。我查了好几个消息来源。最常见的反应是将其设置为主窗体,我也这样做了。下面是我的代码的样子 //in private void InitializeComponent() { this.Load += new System.EventHandler(this.CallTrak_Load); } //in CallT

我有一个WPF表单,我正在尝试添加一个图标。在属性菜单中,我从我的资源文件夹中选择了我的图标。在“设计”视图中,图标显示在其应显示的位置。当我运行应用程序时,它会显示默认视图。我查了好几个消息来源。最常见的反应是将其设置为主窗体,我也这样做了。下面是我的代码的样子

//in private void InitializeComponent()
{
    this.Load += new System.EventHandler(this.CallTrak_Load);
}

//in CallTrak.Load
private void CallTrak_Load(object sender, EventArgs e)
{
    System.Drawing.Icon ico = Properties.Resources.favicon;
    this.Icon = ico;
}

所以,我的问题是,因为它与这篇文章的标题有关,我是否在运行时错误地加载了我的图标?如果是,关于如何正确操作的建议。我还应该检查什么来确定我的问题是什么?

我不确定您是否有WPF应用程序,并且在资源中您是否有ico的图标文件类型

如果有的话。问题可能在于:

您的
ico
变量的类型为
System.Drawing.Icon
窗口。Icon
属性的类型为
ImageSource

  System.Drawing.Icon ico = Properties.Resources.favicon;
  //can not assign Drawing.Icon to ImageSource
  this.Icon = ico;
您应该得到异常:

Cannot implicitly convert type 'System.Drawing.Icon' to 'System.Windows.Media.ImageSource'
如果你想用你需要的方式

或者简单的方法:

例如,将您的图标放到“图像”文件夹中。将生成操作设置为“内容”,并复制到输出目录“复制”(如果更新)。然后您可以使用:

this.Icon = new BitmapImage(new Uri("images/love.ico", UriKind.Relative));

您可以下载的示例应用。

您是否尝试过完整的“重建”并清理解决方案的“bin”和“obj”文件夹?您是通过Visual studio还是从发布文件夹中的.exe文件运行它?如果您通过VS运行它,您的应用程序将托管在vshost.exe进程中,并且它会显示该图标,而不是应用程序中的图标。@JensH当我进入我的bin时,该图标位于.exe文件中。但是,打开文档后,左上角的图标默认为基本图标。当它最小化时,它有相同的图标。让它工作。虽然该文件位于我的资源文件夹中,但我必须将其直接添加到资源中。这将文件更改为.bmp
this.Icon = new BitmapImage(new Uri("images/love.ico", UriKind.Relative));