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

标签 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

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

最佳答案

如果比较这两种情况下的 Image.Source 值,您将在转换中看到它确实有效,底层 Uri 看起来像:

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

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

link提供 URI 的详细描述。但是您需要使用类似下面的内容来使用相对路径。

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

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

关于c# - 图像源未在工作目录中找到图像文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5560653/

相关文章:

C# 将 JSON 反序列化为列表

c# - 在 WinForms 选项卡控件中,我如何知道您正在从/向哪个选项卡移动?

wpf - DataGridComboBoxColumn 中的 EventSetter 抛出 NullReferenceException

ios - jpg 文件在 chrome 中显示,但在 safari 中不显示

c++ - 如何在 opengl 中将 jpg/png 插入场景?

javascript - gif 加载后更改背景图像?

c# - 在 ASP.NET Core 2.0 中使用 KeyFilter

c# - 查询字符串模型绑定(bind) ASP.NET WebApi

c# - ComboBox 与 ObservableCollection 绑定(bind)

c# - 拖动 WPF 用户控件