7

我正在尝试这样做...

<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”第 273 行位置 51 中的对象“System.Windows.HierarchicalDataTemplate”出错。

如您所见,包含此 XAML 的表单位于名为 Forms 的文件夹中。我的图像位于名为 Images 的文件夹中。如何从表单映射到图像?

我试过Source="..Images\unlock.png"在 WPF 中不起作用。

有什么帮助吗?

4

4 回答 4

9

尝试使用斜杠而不是反斜杠,并使用斜杠开头的绝对路径:

Source="/Images/unlock.png"

这通常对我有用。

如果做不到这一点,请查看Pack URIs

于 2008-11-10T19:57:26.950 回答
5
  1. 将您的图像添加到 VS 中的项目中
  2. 右键单击该图像unlock.png
  3. 转到上下文菜单/属性
  4. 将构建操作更改为资源

就是这样 :-)

于 2011-11-29T17:46:46.480 回答
0

您是否尝试将源设置为BitmapImage

<Image x:Name="imgGroupImage" Margin="0,0,5,0"  >
   <Image.Source>
      <BitmapImage UriSource="Images/unlock.png" />
   </Image.Source>
</Image>

Uri我相信for的默认类型UriSource是 relative Uri,它适用于应用程序的基类。您可能会发现您可以配置BitmapSource比尝试找到必须在Source属性中输入文件路径的确切方式更容易一些。

于 2008-11-10T19:58:20.520 回答
0

为了使用位于与 XAML 所在文件夹不同的文件夹中的资源,请执行以下操作:

<Image Source="pack://application:,,,/Resources/image.png"/>

其中Resources是您要从中使用资源的目录的名称,而image.png 是要显示的图像的名称。感谢@matt-hamilton 和@brian-hinchey 以及他们提到的Pack URI 找到了答案。
与您自己的转换器完美配合。您只需要返回上面的字符串匹配模式。

于 2017-09-04T22:01:47.250 回答