如何解决从项目文件夹动态加载图像-Windows Phone 7
| 我想做的事情看起来非常简单,并且我已经在其他平台上做到了... 这里有一些上下文:假设您要在数据绑定的ListBox中显示1000个小图像。首先,将项目中的图像包含在文件夹\'/ images \'中。您将其构建操作设置为\'Content \'。 现在的问题是:如何在运行时将所有这些图像动态加载到应用程序中?所谓动态,是指不必知道1000张图像的每个名称。 (如果您正在考虑使用IsolatedStorage,我已经尝试过了。图像文件夹是项目的一部分,但是不会自动加载到isolatedStorage中,因此,据我所知,您无法从IsolatedStorage中加载图像)解决方法
您可以使用以下T4模板在设计时获取此信息:
<#@ template debug=\"false\" hostspecific=\"true\" language=\"C#\" #>
<#@ output extension=\".gen.cs\" #>
<#@ import namespace=\"System.IO\"#>
// <auto-generated />
using Microsoft.Phone.Controls;
namespace MyAppNamespace
{
public partial class MainPage : PhoneApplicationPage
{
private static string[] AllFilesInImagesFolder()
{
return new[] {
<#
DirectoryInfo directoryInfo = new DirectoryInfo(Path.Combine(Path.GetDirectoryName(Host.TemplateFile),\"images\"));
foreach(FileInfo file in directoryInfo.GetFiles(\"*.*\",SearchOption.AllDirectories))
{
if (!file.FullName.Contains(@\"\\.\"))
{#>
\"<#= file.FullName.Substring(file.FullName.IndexOf(\"images\")).Replace(@\"\\\",\"/\") #>\",<# }
}
#>
};
}
}
}
它会生成如下内容:
// <auto-generated />
using Microsoft.Phone.Controls;
namespace MyAppNamespace
{
public partial class MainPage : PhoneApplicationPage
{
private static string[] AllFilesInImagesFolder()
{
return new[] {
\"images/image1.png\",\"images/image2.png\",\"images/image3.png\",\"images/image4.png\",\"images/image5.png\",};
}
}
}
您显然可以根据需要更改名称空间和部分类的名称。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。