Stu*_*art 5 silverlight resources windows-phone-7
我在部署的芒果XAP中包含了许多图像作为"内容".
我想在运行时列举这些 - 有什么办法可以做到这一点吗?
我已经尝试枚举如下资源:
foreach (string key in Application.Current.Resources.Keys)
{
Debug.WriteLine("Resource:" + key);
}
Run Code Online (Sandbox Code Playgroud)
但图像不包含在列表中.我也尝试过使用嵌入式资源 - 但这并没有帮助.我可以阅读使用的流,Application.GetResourceStream(uri)但显然我需要知道这些名称才能做到这一点.
无法枚举设置为“内容”的文件。
但是,如果将文件设置为“嵌入式资源”,则有一种方法可以在运行时枚举文件。
以下是您可以执行此操作的方法:
Assembly.GetCallingAssembly().GetManifestResourceNames()枚举资源名称Assembly.GetCallingAssembly().GetManifestResourceStream(resName)
获取文件流。这是代码:
public void Test()
{
foreach (String resName in GetResourcesNames())
{
Stream s = GetStreamFromEmbeddedResource(resName);
}
}
string[] GetResourcesNames()
{
return Assembly.GetCallingAssembly().GetManifestResourceNames();
}
Stream GetStreamFromEmbeddedResource(string resName)
{
return Assembly.GetCallingAssembly().GetManifestResourceStream(resName);
}
Run Code Online (Sandbox Code Playgroud)
编辑:正如 quetzalcoatl 所指出的,此解决方案的缺点是图像嵌入在 DLL 中,因此如果图像量很大,应用程序加载时间可能会受到影响。
| 归档时间: |
|
| 查看次数: |
2159 次 |
| 最近记录: |