WPF从共享项目访问图像路径

Posted

技术标签:

【中文标题】WPF从共享项目访问图像路径【英文标题】:WPF Accessing image path from shared project 【发布时间】:2018-07-01 22:23:14 【问题描述】:

我有一个 WPF 应用程序(项目 A),其中有一个资源字典文件 Global.xaml。在这个文件中我指的是

<BitmapImage x:Key="Test" UriSource="..\Images\Test.png">

上面的行引用了下面路径中的图像

pack://application:,,,/Assembly of Project A;component/Images/Test.png

现在我将图像移动到共享项目(共享项目 A)并在项目 A 中被引用。那么 UriSource 是什么?

我尝试提供共享项目的组装 A;component/Images/Test.png

但它没有从共享项目中获取图像。

【问题讨论】:

如果您遇到问题,相关问题:Pack URI to image embedded in a resx file 【参考方案1】:

试试这个:

一般:

Source="pack://application:,,,/<ReferencedAssemblyName>;component/<PathInReferencedAssembly>"

在你的情况下:

Source="pack://application:,,,/SharedProjectA;component/Images/Test.png"

还要确保所有图片的Build-ActionResource,并且项目已成功构建。

【讨论】:

这个解决方案对我不起作用,它抛出 FileNotFoundException 因为它试图找到 SharedProjectA 程序集,但是这样的程序集不存在,因为共享项目不创建自己的程序集。我正在使用几乎空的解决方案,但我遇到了一个奇怪的问题:我在文件夹 SharedProject/Images/image.png 中有一张图片。当我将其引用为/Images/image.png 时,它会正确显示在设计器中,但不会在运行时显示。另一方面,当我在没有路径的情况下将其引用为image.png 时,它不会显示在设计器中,但可以在运行时工作:(

以上是关于WPF从共享项目访问图像路径的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin Forms:获取存储在共享项目中的图像文件的路径?

使用 WPF、Caliburn 和 C# 从图像转换为图像源

nginx 代理java项目访问共享链接404

在 VS 2010 的 Winforms 项目中添加 WPF 窗口

WPF调用图片路径,或资源图片

从另一个项目的可执行文件启动一个项目的可执行文件