C# 从其他项目调用时,窗口中的图像丢失

C# 从其他项目调用时,窗口中的图像丢失,c#,wpf,image,resources,uri,C#,Wpf,Image,Resources,Uri,我有一个应用程序,因此有一个登录对话框。登录对话框包含一个图像 <Window.Resources> <BitmapImage x:Key="loginImage" UriSource="login.png" /> </Window.Resources> 。 . 一切都很顺利,直到我决定将另一个项目中的登录对话框外包给 在其他应用程序中再次使用它。在设计器中,图像仍然可见。但是什么时候 我启动主应用程序并调用登录对话框,图像丢失。所有其他内容(

我有一个应用程序,因此有一个登录对话框。登录对话框包含一个图像

<Window.Resources>
  <BitmapImage x:Key="loginImage" UriSource="login.png" />
</Window.Resources>

。 .


一切都很顺利,直到我决定将另一个项目中的登录对话框外包给 在其他应用程序中再次使用它。在设计器中,图像仍然可见。但是什么时候 我启动主应用程序并调用登录对话框,图像丢失。所有其他内容(标签、按钮等)工作正常。这只是图像的问题

有人有解决办法吗

编辑: 好的,现在我按预期工作了。这是如此简单,它伤害。。。 哈里斯给出的解决方案很好。我只需要重建整个VS解决方案,而不仅仅是类库项目。
谢谢你的帮助

我认为问题在于,您的应用程序在自己的文件中查找图像,而不是在您的单独登录项目的文件中

您应该试试,而不是
UriSource=“login.png”

Source=“/ClassLibraryName;Component/images/login.png”

您是否已确保文件
login.png
已添加到VS项目中,并且其构建操作已设置为
Resource
?你是说图像的源属性?我试图将其设置为Source=“../UserDefinedDialogs/login.png”。结果是一样的。图像显示在设计器中,但在从另一个应用程序打开窗口时不会显示。@Buchter按照我提到的格式操作。首先是登录项目的程序集名称,然后是映像。不要这样做../.好的,我尝试了你的格式“Source=“/UserDefinedDialogs;Component/login.png“”,但它无法解决此问题。行为仍然相同:在设计器中工作,但在已编译的应用程序中不工作。@Butter这应该可以。否则,一种解决方法是将图像放在主应用程序中,而不是放在其他项目中。但这不是一个理想的解决方案,现在我使用
Source='pack://siteoforigin:,,,/Images/login.png“
但是这个解决方案不是我想要的,因为login.png需要作为文件存储在输出目录中。这里有人有同样的问题,但他用你提到的格式修复了它。我不明白为什么它在我的项目中不起作用。如果有人给我其他提示,我将非常感激!
<Image Grid.Column="0" Grid.Row="1" Source="{StaticResource loginImage}"/>