循环访问Visual Studio资源

时间:2011-05-03 12:11:42

标签: c# wpf visual-studio-2010 resources

我正在使用带有C#WPF应用程序的Visual Studio 2010,并且我已将一些图像添加到名为assets的子文件夹中。有没有什么方法可以使用包URI或类似的东西遍历我添加到文件夹中的所有图像?

1 个答案:

答案 0 :(得分:1)

以下方法获取资源文件夹中的所有文件名:

public static string[] GetResourcesUnder(string folder)
{
    folder = folder.ToLower() + "/";

    var assembly       = Assembly.GetCallingAssembly();
    var resourcesName  = assembly.GetName().Name + ".g.resources";
    var stream         = assembly.GetManifestResourceStream(resourcesName);
    var resourceReader = new ResourceReader(stream);

    var resources =
        from p in resourceReader.OfType<DictionaryEntry>()
        let theme = (string)p.Key
        where theme.StartsWith(folder)
        select theme.Substring(folder.Length);

    return resources.ToArray();
}

使用它们时只需要重新打开头部:

var files = GetResourcesUnder("Images");
foreach (var file in files)
{
    string uriPath = "pack://application:,,,/Images/" + file;
    //...
}

我做了没有写这个方法,这是来自SO的另一个问题,我会试着找到它......

修改:来自here