2014-10-18 74 views
0

我正在C#windows应用程序中开发项目。我对这项技术很陌生。我在一个类中声明了Image变量,并在另一个类中声明了列表。我想从资源文件夹中检索图像并将其存储在列表中十次。我写这样的代码,但它返回null。你有任何解决方案,请回复。从C#窗体应用程序中的Resource文件夹中检索图像

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

你知道哪一行引起该问题?如果没有,你是否尝试在调试器中运行代码?如果不是,那么请这样做。 – honk 2014-10-18 09:28:05

回答

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 
    } 

} 
相关问题