【发布时间】:2018-10-17 16:21:09
【问题描述】:
那里有两个程序集。例如 A 和 B。 图片位于项目 A 中:/Resources/images/Question.png。 当我从其项目中调用程序集 A 的窗口时, - 一切正常。图片在那里。
当我从程序集 B 调用程序集 A 的窗口时。-窗口本身是可以的。图片不见了。
有没有办法解决这个问题?
private void SetImage(string imageName)
{
string uri = string.Format("/Resources/images/{0}", imageName);
var uriSource = new Uri(uri, UriKind.RelativeOrAbsolute);
img.Source = new BitmapImage(uriSource);
}
谢谢。
【问题讨论】:
-
如果我使用这种方法,我必须把它放在哪里?查看更新。
-
问题是您正在从另一个线程加载图像。您需要先冻结图像,以便它可以跨线程使用。查找“如何在 WPF 中冻结图像”。
-
@ASilva 你怎么知道还有另一个线程? 实际的问题是,在后面的代码中,您必须使用完整的 Pack URI,包括引用的程序集名称。
-
@Clemens 我对此并不强硬。我想你是对的。 :-)