Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# BitmapImage URI源的绑定相对路径_C#_Wpf_Xaml - Fatal编程技术网

C# BitmapImage URI源的绑定相对路径

C# BitmapImage URI源的绑定相对路径,c#,wpf,xaml,C#,Wpf,Xaml,我有以下资料: <BitmapImage UriSource="{Binding resource}" /> 其中resource是类中的一个字符串,该类保存图像的位置。当资源是一个绝对路径时,这种方法有效,但当路径是相对路径时则不起作用 我知道我必须使用。但是在这种情况下如何实现它呢?尝试对保存图像位置的字符串使用packURI pack://siteoforigin:,,,/yourimagefilename.jpg 下面是3种在项目中创建图像的方法 a。将图像直接添加到

我有以下资料:

<BitmapImage UriSource="{Binding resource}" />

其中resource是类中的一个字符串,该类保存图像的位置。当资源是一个绝对路径时,这种方法有效,但当路径是相对路径时则不起作用


我知道我必须使用。但是在这种情况下如何实现它呢?

尝试对保存图像位置的字符串使用packURI

pack://siteoforigin:,,,/yourimagefilename.jpg

下面是3种在项目中创建图像的方法

a。将图像直接添加到项目中,右键单击图像,选择属性并设置Build Action->Resource。这将把映像编译成程序集(exe/dll)


如果您在项目中创建了一些文件夹,比如说“Images”,并将图像添加到该文件夹中,那么路径将是

<Image Source="Images\Grapes.png" Stretch="None"></Image>
<Image Source="Images\Orange.png" Stretch="None"></Image>

b。将图像直接添加到项目中,右键单击图像,选择属性并将构建操作->内容和“复制到输出目录”设置为“始终复制”。这会将图像文件复制到创建EXE的文件夹中的EXE旁边。(bin\debug或bin\release)


如果您在项目中创建了一些文件夹,比如说“Images”,并将图像添加到该文件夹中,那么路径将是

<Image Source="Images\Grapes.png" Stretch="None"></Image>
<Image Source="Images\Orange.png" Stretch="None"></Image>

c。不要将图像添加到文件夹中。而是将图像直接复制到将创建EXE的文件夹中(bin\debug或bin\release)。运行应用程序时,siteoforigin将等于可执行文件的位置

<Image Source="pack://siteoforigin:,,,/Apple.png" Stretch="None"></Image>


您能在它工作时和不工作时显示实际路径吗?谢谢!这应该行得通,但我有个问题。我的相对路径实际上上升了1级,如:“../Data/myImage.jpg”。按照您的建议执行后,我得到一个
DirectoryNotFoundException
stating无法找到路径的一部分。在路径中,我注意到“.”已消失,因此它改为“Bin/Data/myImage.jpg”。我认为当您部署应用程序时,您的数据文件夹将位于可执行文件旁边。所以在这种情况下,你不需要再上一层楼。在开发期间,您可以在bin\debug或bin\release文件夹中复制数据文件夹。实际上我不能,在部署期间,该文件夹比可执行文件高1级。。。我被要求使用这个文件夹。。。