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-Action
为Resource
,并且项目已成功构建。
【讨论】:
这个解决方案对我不起作用,它抛出FileNotFoundException
因为它试图找到 SharedProjectA
程序集,但是这样的程序集不存在,因为共享项目不创建自己的程序集。我正在使用几乎空的解决方案,但我遇到了一个奇怪的问题:我在文件夹 SharedProject/Images/image.png
中有一张图片。当我将其引用为/Images/image.png
时,它会正确显示在设计器中,但不会在运行时显示。另一方面,当我在没有路径的情况下将其引用为image.png
时,它不会显示在设计器中,但可以在运行时工作:(以上是关于WPF从共享项目访问图像路径的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin Forms:获取存储在共享项目中的图像文件的路径?
使用 WPF、Caliburn 和 C# 从图像转换为图像源