WP7:图像集

时间:2010-10-26 10:39:59

标签: c# .net windows-phone-7

我的Windows手机解决方案中的文件夹中有图像。如何在此文件夹中获取图像集?所有图像的构建动作都是“内容”。

1 个答案:

答案 0 :(得分:1)

一直困扰我的是,我无法做到这一点所以我已经做了一些挖掘并想出了一种方法,通过“资源”的构建操作获取所有图像文件的列表。 - 是的,这不是所要求的,但希望这仍然有用。

如果你真的必须使用“内容”的构建操作,我会使用T4脚本在构建时生成文件列表。 (这就是我对我的一个项目的处理方式,它运行正常。)

假设图像位于名为“images”的文件夹中,您可以使用以下内容获取它们:

var listOfImageResources = new StringBuilder();

var asm = Assembly.GetExecutingAssembly();

var mrn = asm.GetManifestResourceNames();

foreach (var resource in mrn)
{
    var rm = new ResourceManager(resource.Replace(".resources", ""), asm);

    try
    {
        var NOT_USED = rm.GetStream("app.xaml"); // without getting a stream, next statement doesn't work - bug?

        var rs = rm.GetResourceSet(Thread.CurrentThread.CurrentUICulture, false, true);

        var enumerator = rs.GetEnumerator();
        while (enumerator.MoveNext())
        {
            if (enumerator.Key.ToString().StartsWith("images/"))
            {
                listOfImageResources.AppendLine(enumerator.Key.ToString());
            }
        }
    }
    catch (MissingManifestResourceException)
    {
        // Ignore any other embedded resources (they won't contain app.xaml)
    }
}

MessageBox.Show(listOfImageResources.ToString());

这只会显示一个名单列表,但希望将其更改为您需要的任何内容都很容易。

非常感谢任何改进此代码的建议。