【问题标题】:Image in Window is missing when calling from other project从其他项目调用时窗口中的图像丢失
【发布时间】:2013-05-27 08:53:58
【问题描述】:

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

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

。 . .

<Image Grid.Column="0" Grid.Row="1" Source="{StaticResource loginImage}"/>

在我决定将单独项目中的登录对话框外包给 在其他应用程序中再次使用它。在设计器中,图像仍然可见。但当 我启动主应用程序并调用登录对话框,图像丢失。所有其他内容(标签、按钮、...)工作正常。只是图片有问题。

有人有解决办法吗?

编辑: 好的,现在我按预期工作了。简单到让人心疼…… 哈里斯给出的解决方案非常好。我只需要重建整个 VS 解决方案,而不仅仅是类库项目。 感谢您的帮助!

【问题讨论】:

  • 您确定文件login.png 已添加到VS 项目,并且其构建操作设置为Resource?见here

标签: c# wpf image resources uri


【解决方案1】:

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

您应该尝试使用 UriSource="login.png" 而不是 Source="/ClassLibraryName;Component/images/login.png"

【讨论】:

  • 你的意思是图片的来源属性?我试图将其设置为 Source=".​​./UserDefinedDialogs/login.png"。结果是一样的。图像出现在设计器中,但从其他应用程序打开窗口时不会出现。
  • @Buchter 遵循我提到的格式。登录项目的第一个程序集名称,然后是图像。不要做../..
  • 好的,我试过你的格式 "Source="/UserDefinedDialogs;Component/login.png" " 但它不能解决问题。行为仍然相同:在设计器中工作,但不在已编译的应用程序中。
  • @Buchter 这应该可以。否则,一种解决方法可能是将图像放在主应用程序而不是其他项目中。但这不是一个理想的解决方案
  • 现在我使用Source="pack://siteoforigin:,,,/Images/login.png" 让它工作了,但这个解决方案不是我想要的,因为 login.png 需要存储为输出目录中的文件。这里stackoverflow.com/questions/2271863/… 有人遇到了同样的问题,但他用你提到的格式修复了它。我不明白为什么它在我的项目中不起作用。如果有人对我有其他提示,我将不胜感激!
猜你喜欢
  • 2011-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-14
  • 1970-01-01
  • 1970-01-01
  • 2021-03-06
相关资源
最近更新 更多