2010-10-26 2 views
1

У меня есть изображения в папке Изображения в моем решении для Windows. Как я могу получить коллекцию изображений в этой папке? Строить действие всех изображений - это «Контент».WP7: коллекция изображений

ответ

1

Было прослушивание меня, что это было невозможно сделать, поэтому я немного поработал и получил способ получить список всех файлов изображений с действием сборки «Ресурс», , - Да, это не совсем то, о чем просили, но, надеюсь, это будет по-прежнему полезно.

Если вы действительно должны использовать действие сборки «Контент», я бы использовал сценарий T4 для создания списка файлов во время сборки. (. Это то, что я делаю с одним из моих проектов, и это работает отлично)

Предполагая, что изображения в папке «Изображения» вы можете получить их следующим образом:

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()); 

Это просто отображает список имен, но, надеюсь, будет легко изменить это, чтобы делать все, что вам нужно.

Любые предложения по улучшению этого кода будут очень благодарны.

+0

Я не знаю названия изображений. Мне нужно получить все изображения uri из папки. – Rover

Смежные вопросы