C# 如何找到图像的相对路径

C# 如何找到图像的相对路径,c#,wpf,image,xaml,imagesource,C#,Wpf,Image,Xaml,Imagesource,在遗留项目中,存在图像的绝对路径, 例如: C:/projects/LegacyProject/Project/Client/UserInterface/Images/arrow.png <Image Source="C:/projects/LegacyProject/Project/Client/UserInterface/Images/arrow.png" Stretch="Fill" /> 现在我想使用相对路径,这样每个开发人员都可以使用它 项目,不管他在哪里有他的源代码副

在遗留项目中,存在图像的绝对路径, 例如:

C:/projects/LegacyProject/Project/Client/UserInterface/Images/arrow.png
<Image Source="C:/projects/LegacyProject/Project/Client/UserInterface/Images/arrow.png" Stretch="Fill" />
现在我想使用相对路径,这样每个开发人员都可以使用它 项目,不管他在哪里有他的源代码副本

有没有一种简单的方法可以找到(资源)相对路径? 那我怎么用呢

例如,目前我有:

C:/projects/LegacyProject/Project/Client/UserInterface/Images/arrow.png
<Image Source="C:/projects/LegacyProject/Project/Client/UserInterface/Images/arrow.png" Stretch="Fill" />

我想要的是:

<Image Source="arrow.png" Stretch="Fill" />

试过

<Image Source="pack:,,, arrow.png" Stretch="Fill" />
<Image Source="/WPF1;arrow.png"></Image> 


类似的事情

将图像文件放入VisualStudio项目中的一个文件夹(比如说
图像
),并将其设置为
资源

现在,您只需在XAML中使用它们,如下所示:

<Image Source="Images/arrow.png" ... />
/[project name];component/[folder name: e.g. Images]/[file name]

通过单击使用
image
控件的
Source
属性添加图像

那么路径将是这样的:

<Image Source="Images/arrow.png" ... />
/[project name];component/[folder name: e.g. Images]/[file name]

不确定您的上下文,但我认为
~
确实等同于应用程序根。您应该能够执行
操作,除非在根目录之后的非正常路径中,
UserInterface
Client/UserInterface
是根目录之后的文件夹。然后您也需要添加它们,即:
我如何才能说出应用程序根是什么?项目中有多个名称空间,也许这就是问题所在谢谢!已将图像重新包含在项目中,构建操作为“资源”,它们位于文件夹“images”中,我收到一个XAML解析异常“'未能从文本“images/arrow.png”创建“ImageSource”。我需要它在XAML中,而不是背后的代码。是从项目中引用的另一个程序集中的图像吗?不,它都在一个程序集中奇怪,它应该就是这样工作的。如图所示,在代码中创建
位图图像是否有效?只是为了确保文件没有被破坏。它是哪个.Net版本?.Net 4.0,必须尝试BitmapImage部分。在找到此处所述的正确项目名称后,此部分有效。。。当然还有大规模的重建;)