我正在使用C#windows应用程序开发项目。我是这项技术的新手。我在一个类中声明了Image变量,并在另一个类中列出了。我想从Resource文件夹中检索图像并将其存储在列表中十次。我写了这样的代码,但它返回null。你有任何解决方案请回复。
class clsAddImage
{
public Image m_imgSampleImage;
}
class clsList
{
public List<clsAddImage> lstImage = new List<clsAddImage>();
}
class clsAddImageToList
{
public void AddImgMethod()
{
clsList objlist = new clsList();
int i;
for (i = 0; i < 10; i++)
{
clsAddImage objaddimg = new clsAddImage();
objlist.lstImage.Add(objaddimg);
}
foreach (clsAddImage addimg in objlist.lstImage)
{
string path = "C:\\Users\\c09684\\Documents\\Visual Studio 2010\\Projects\\WindowsFormsAddImage\\WindowsFormsAddImage\\Resources\\Chrysanthemum.jpg";
addimg.m_imgSampleImage = Image.FromFile(path);
}
}
}
public Form1()
{
InitializeComponent();
clsAddImageToList a = new clsAddImageToList();
a.AddImgMethod();
}
答案 0 :(得分:0)
我假设您引用的是Windows8应用程序?在这种情况下,您可以不简单地编程目录以检索信息。用户必须手动选择目录,您可以存储该目录以供将来使用。但是,您可以访问KnownFolders(对于大多数您必须检查Package.appxmanifest中的功能,例如图片库),请参阅http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.knownfolders了解选项。
通过以下任务,您将能够从目录中检索文件,我希望这可以帮助您解决问题:
public async Task GetFilesFromDisk()
{
StorageFolder picturesFolder = KnownFolders.PicturesLibrary;
StringBuilder outputText = new StringBuilder();
IReadOnlyList<StorageFile> fileList = await picturesFolder.GetFilesAsync();
var images = new List<BitmapImage>();
if (fileList != null)
{
foreach (StorageFile file in fileList)
{
string cExt = file.FileType;
if (cExt.ToUpper() == ".JPG")
{
Windows.Storage.Streams.IRandomAccessStream fileStream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
using (Windows.Storage.Streams.IRandomAccessStream filestream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read))
{
BitmapImage bitmapImage = new BitmapImage();
await bitmapImage.SetSourceAsync(fileStream);
}
}
} // ForEach
}
}