关于c#:BitmapImage UriSource的绑定相对路径

Binding Relative Path for BitmapImage UriSource

我有以下:

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

resource 是一个类中的字符串,它保存图像的位置。这在资源是绝对路径时有效,但在路径是相对路径时无效。

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


以下是在项目中添加图像的 3 种方法。

一个。直接将图片添加到项目中,右键图片,选择属性,设置Build Action -> Resource。这会将图像编译成程序集 (exe/dll)

1
<Image Source="Grapes.png" Stretch="None"></Image>

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

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

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

1
<Image Source="Orange.png" Stretch="None"></Image>

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

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

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

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

尝试对包含图像位置的字符串使用pack URI

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