将图像源设置为应用程序文件夹

时间:2016-02-26 10:39:25

标签: c# wpf path

我尝试从某个路径获取图片,但该路径只能从应用程序的当前文件夹中引用,而不能从 Local C:驱动器中引用。

我的理由是因为应用程序即将发布,我无法将图像引用到当前PC上的同一本地位置,因为该应用程序将用于很多其他应用程序PC和路径不适用于其他人的计算机。

这是当前有效的路径:

SetDefaultImage(new Binary(File.ReadAllBytes("C:\\Users\\mclaasse\\Desktop\\Haze Update\\Haze\\Haze\\Icons\\user6.jpg")));

这就是我需要它的方式:

SetDefaultImage(new Binary(File.ReadAllBytes("Haze\\Icons\\user6.jpg")));

但是我得到了错误:

  

无法找到路径的一部分' C:\ Haze \ Icons \ user6.jpg'。

是否有一个简单的工作方式让我的工作路线?

2 个答案:

答案 0 :(得分:2)

不确定这是否正是您所需要的,但前提是您的Visual Studio项目中的图像文件user6.jpg位于名为Images的项目文件夹中,Build Action为图片文件设置为Resource,您只需从Resource File Pack URI

加载即可
var image = new BitmapImage(new Uri("pack://application:,,,/Images/user6.jpg"));

答案 1 :(得分:0)

这些参考文献都没有为我工作(我不知道为什么),但这有效:

string directory = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
string filePath = Path.Combine(directory, "Icons\\user6.jpg");

然后检查您要查找的文件是否存在:

if (!File.Exists(filePath))
{
    MessageBox.Show("The default image does not exist", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
}
else
{
    ...
}