C#图像的相对路径将不起作用

C#图像的相对路径将不起作用,c#,wpf,xaml,C#,Wpf,Xaml,我已经研究了十几种不同的解决方案来实现这一点,但我似乎无法正确地执行它。我有一个文件cup.png,我将它放在名为/Images/的子文件夹中,该子文件夹位于我的项目文件夹“/Visual Studio 2013\Projects\PointOfSale\PointOfSale\Images\cup.png”下 IDE的行为就像它可以找到文件,并显示在designer视图和所有内容中,我可以进行编译,但在运行它的那一刻,我得到了一个XamlParseException错误: 类型的第一次机会例外

我已经研究了十几种不同的解决方案来实现这一点,但我似乎无法正确地执行它。我有一个文件cup.png,我将它放在名为/Images/的子文件夹中,该子文件夹位于我的项目文件夹“/Visual Studio 2013\Projects\PointOfSale\PointOfSale\Images\cup.png”下

IDE的行为就像它可以找到文件,并显示在designer视图和所有内容中,我可以进行编译,但在运行它的那一刻,我得到了一个XamlParseException错误:

类型的第一次机会例外 中出现“System.Windows.Markup.XamlParseException” PresentationFramework.dll其他信息:“提供上的值” “System.Windows.Baml2006.TypeConverterMarkupExtension”引发了 例外情况。'行号'7'和行位置'14'

我到底错过了什么?我已经尝试了所有不同的形式,试图让它发挥作用:

<ImageBrush ImageSource="pack://application:,,,/PointOfSale;component/cup.png" Opacity="0.1"/>
<ImageBrush ImageSource="/cup.png" Opacity="0.1"/>
<ImageBrush ImageSource="/Images/cup.png" Opacity="0.1"/>
<ImageBrush ImageSource="/PointOfSale;component/Images/cup.png" Opacity="0.1"/>

您有两个选择(您对我的评论的回复没有直接回答)

  • 您可以使用资源的
    BuildAction
    将图像作为资源包含
  • 您可以使用content
    BuildAction
    将图像作为一段内容包含在内
  • 如果选择第一个选项,则替换映像将需要替换整个程序集/可执行文件。可以将图像引用为
    “assembly;component/Resources/Images/cup.png”
    (请注意,字符串开头需要一个正斜杠)


    如果选择第二个选项,则替换图像只需替换图像文件即可。您可以将图像引用为
    “/Resources/Images/darkaurora.png”
    (请注意,字符串开头需要正斜杠)。

    您希望图像嵌入二进制文件中,还是作为相对于可执行文件的文件夹中的外部资源?基本上,我需要压缩整个solutions文件夹并将其发送给其他人,我想确保程序可以加载图像文件,因为它是主窗口的背景图像。我需要它从解决方案文件夹中的某个文件夹加载文件,而不需要整个路径(C:\users\…\documents\visual studio\etc…),最后…终于…终于让它与您的建议一起工作,将其更改为BuildAction内容。非常感谢。@JesselEary如果您需要在资源文件中嵌入图像,那么我过去就遇到过这个问题,这应该会有所帮助: