我正在尝试这样做......
<Image x:Name="imgGroupImage" Source="Images\unlock.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的文件夹中。如何从表单映射到图像?
我尝试了Source="..Images\unlock.png"
,这在WPF中无效。
任何帮助?
答案 0 :(得分:9)
答案 1 :(得分:5)
多数民众赞成: - )
答案 2 :(得分:0)
您是否尝试过将来源设为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
属性中输入文件路径的确切方式。
答案 3 :(得分:0)
为了使用位于与XAML所在文件夹不同的文件夹中的资源,请执行以下操作:
<Image Source="pack://application:,,,/Resources/image.png"/>
资源是您要使用资源的目录名称, image.png是要显示的图像名称。感谢@ matt-hamilton和@ brian-hinchey以及他们提到的Pack URI 与您自己的转换器完美配合。您只需返回上面的字符串匹配模式。