关于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
  • 谢谢!这应该有效,但我有一个问题。我的相对路径实际上上升了 1 级,例如:”../Data/myImage.jpg”。在我按照您的建议进行操作后,我得到一个 DirectoryNotFoundException 声明找不到路径的一部分。在路径中,我注意到 “..” 消失了,所以它变成了 “Bin/Data/myImage.jpg”。
  • 我认为当您部署应用程序时,您的 Data 文件夹将位于您的可执行文件旁边。因此,在这种情况下,您不需要上一级。在开发期间,您可以将数据文件夹复制到 bin\\\\\\\\debug 或 bin\\\\
    释放文件夹。
  • 实际上我不能,在部署期间,该文件夹比可执行文件高 1 级…而且我需要使用该文件夹…


来源:https://www.codenong.com/18629648/

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?