在WPF中,如何使用XAML指定嵌套在目录中的文件的路径?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在WPF中,如何使用XAML指定嵌套在目录中的文件的路径?相关的知识,希望对你有一定的参考价值。
我想这样做......
<Image x:Name="imgGroupImage" Source="Imagesunlock.png" Margin="0,0,5,0" />
但我得到这个错误......
无法将属性“Source”中的字符串“Images unlock.png”转换为“System.Windows.Media.ImageSource”类型的对象。找不到资源'forms / images / unlock.png'。标记文件'Fuse; component / forms / mainwindow.xaml'中对象'System.Windows.HierarchicalDataTemplate'出错第273行位置51。
如您所见,包含此XAML的表单位于名为Forms的文件夹中。我的图像位于名为Images的文件夹中。如何从表单映射到图像?
我尝试了在WPF中不起作用的Source="..Imagesunlock.png"
。
有帮助吗?
尝试使用斜杠而不是反斜杠,并使用斜杠引导使用绝对路径:
Source="/Images/unlock.png"
这通常对我有用。
如果做不到这一点,请看看Pack URIs。
- 将您的图像添加到VS中的项目
- 右键单击该图像unlock.png
- 转到上下文菜单/属性
- 将构建操作更改为资源
而已 :-)
你有没有尝试将源设置为BitmapImage?
<Image x:Name="imgGroupImage" Margin="0,0,5,0" >
<Image.Source>
<BitmapImage UriSource="Images/unlock.png" />
</Image.Source>
</Image>
我相信Uri
的默认类型UriSource
是一个相对的Uri
,它适用于应用程序的基类。您可能会发现,您可以更轻松地配置BitmapSource
,而不是尝试在Source
属性中找到输入文件路径的确切方法。
为了使用位于与XAML所在文件夹不同的文件夹中的资源,请执行以下操作:
<Image Source="pack://application:,,,/Resources/image.png"/>
其中Resources是您要使用资源的目录的名称,而image.png是要显示的图像的名称。感谢@ matt-hamilton和@ brian-hinchey以及他们提到的Pack URI。 与您自己的转换器完美配合。您只需返回上面的字符串匹配模式。
以上是关于在WPF中,如何使用XAML指定嵌套在目录中的文件的路径?的主要内容,如果未能解决你的问题,请参考以下文章