循环遍历wpf应用程序中的图像文件夹

时间:2009-11-17 17:19:57

标签: wpf loops directory

我目前正在我机器上“MyPictures”文件夹的一个文件夹中加载所有图像,这样可以正常工作......

foreach (string filename in Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures)))

我真正希望能够做的是在我的解决方案项目中的Images文件夹中加载所有图像。有人可以告诉我这样做的正确语法吗?

2 个答案:

答案 0 :(得分:0)

[就我所知,你的问题中没有任何内容(正如目前所说)与WPF实际上直接相关,而不是C#(和Windows开发)。如果问题被标记为C#而不是WPF,则可能会得到更好的答复。]

我认为没有办法像你这样引用你的解决方案的文件夹(它也没有多大意义,因为你的应用程序的用户通常不会有解决方案,只有可分发的)。

如果您需要以某种方式将目录放在解决方案文件夹中,也许您应该参考可执行文件所在的目录(...\SolutionDir\bin\Debug),您可以使用该目录

System.IO.Path.GetDirectoryName(
    System.Reflection.Assembly.GetExecutingAssembly()
    .GetModules()[0].FullyQualifiedName);

(当然,你可以用\..\..来代替SolutionDir,但这有点难看。)

根据图像的用法,将它们放在一个已定义的特殊目录下可能会更好 - Environment.SpecialFolder.CommonApplicationData听起来像是最佳候选者,如果要共享图像的话所有用户。

答案 1 :(得分:0)

访问存储在WPF项目内的文件夹中的图像的一种方法是执行以下操作:

如果您已在Images文件夹中添加了图像,请在Properties下的Resources.resx文件中添加图像文件名。您可以通过以下

访问代码中的图像
string imageFilename = "pack://application:,,,/APP.UI;component/Images/" + Properties.Resources.imagefilename;
var src = new BitmapImage();
src.UriSource = new Uri(imageFilename , UriKind.Absolute);