【问题标题】:Binding Relative Path for BitmapImage UriSource绑定 BitmapImage UriSource 的相对路径
【发布时间】:2013-09-05 06:53:37
【问题描述】:

我有以下几点:

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

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

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

【问题讨论】:

  • 你能在什么时候显示实际路径,什么时候不工作??

标签: c# wpf xaml


【解决方案1】:

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

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

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

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

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

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

<Image Source="Orange.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>

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 谢谢!这应该有效,但我有一个问题。我的相对路径实际上上升了 1 级,例如:“../Data/myImage.jpg”。在按照您的建议进行操作后,我收到 DirectoryNotFoundException 声明找不到路径的一部分。在路径中,我注意到“..”消失了,所以它变成了“Bin/Data/myImage.jpg”。
    • 我认为当您部署应用程序时,您的 Data 文件夹将位于可执行文件旁边。因此,在这种情况下,您不需要上一级。在开发过程中,您可以将数据文件夹复制到 bin\debug 或 bin\release 文件夹中。
    • 其实我不能,在部署期间文件夹比可执行文件高1级...并且我需要使用该文件夹...
    猜你喜欢
    • 2015-06-26
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2021-11-06
    • 2014-10-15
    • 1970-01-01
    • 2013-12-07
    • 2010-09-06
    相关资源
    最近更新 更多