图像源未在工作目录中找到图像文件

时间:2011-04-06 01:51:16

标签: c# wpf image

我是WPF的新手,面临着在按钮上定位图像文件的问题。

当我放置一个相对路径时,它不起作用,如图所示(Window1.xaml):

<Button Height="23" HorizontalAlignment="Right" Margin="0,33,38,0" Name="button1" VerticalAlignment="Top" Width="24" Background="AliceBlue" OpacityMask="Cyan" Grid.Column="1" Click="button1_Click">
    <Image Source="Folder-icon.png"></Image>
</Button>

然而,当我提出绝对路径时,它正在工作:

<Button Height="23" HorizontalAlignment="Right" Margin="0,33,38,0" Name="button1" VerticalAlignment="Top" Width="24" Background="AliceBlue" OpacityMask="Cyan" Grid.Column="1" Click="button1_Click">
    <Image Source="D:\Folder-icon.png"></Image>
</Button>

我尝试在图片中描述我的文件夹结构。 Folder Structure

希望有人可以指导我使用相对路径将图像加载到同一工作区内的按钮。

2 个答案:

答案 0 :(得分:1)

如果是因为你没有给它正确的路径。这是样本

/EmailScrapperWpf;component/Images/SearchDog.gif

就像/projectname;then path where your image is placed

我觉得在你的情况下它应该是

 <Image Source="/WPF1;Folder-icon.png"></Image>

当您选择Image时从属性中选择图像并按F4,源会导航到图像,然后查看选择图像后显示的路径,您必须将该路径放在{{1}中}

答案 1 :(得分:1)

如果你比较两种情况的Image.Source值,你会在演员表中看到它确实有效,底层的Uri看起来像:

file:///D:/Folder-icon.png

如果它不起作用,则Image.Source值为null。问题是没有完整路径,WPF假定它是嵌入式资源的相对路径,而不是磁盘上的文件。

link提供了URI的详细说明。但是你需要使用类似下面的内容来使用相对路径。

pack://siteoforigin:,,,/Folder-icon.png

另外请注意,默认路径位于<Your Project Path\bin\Debug文件夹,而不是<Your Property Path>文件夹。