Ресурсы изображений могут быть добавлены в сборку несколькими способами, что окажет некоторое влияние на код для перечисления имен изображений.
- Вы можете добавлять изображения в файл resx.
- Вы можете добавлять изображения непосредственно в решение (как в файлах кода) и устанавливать для их действия по сборке значение «Встроенный ресурс».
Пример кода, который вы указали в своем вопросе, будет работать во втором случае. Однако обратите внимание, что в нем также будут перечислены любые другие ресурсы манифеста (например, встроенные файлы resx), а не только ваши изображения.
Если вы добавили изображения в файл resx, вы можете перечислить ресурсы, используя ResourceSet
, полученный из ResourceManager
:
// This requires the following using statements in the file:
// using System.Resources;
// using System.Collections;
ResourceManager rm = new ResourceManager(typeof(Images));
using (ResourceSet rs = rm.GetResourceSet(Thread.CurrentThread.CurrentUICulture, true, true))
{
IDictionaryEnumerator resourceEnumerator = rs.GetEnumerator();
while (resourceEnumerator.MoveNext())
{
if (resourceEnumerator.Value is Image)
{
Console.WriteLine(resourceEnumerator.Key);
}
}
}
В первой строке, где написано ResourceManager(typeof(Images))
, вам нужно будет заменить Images
на имя файла ресурса i, в котором находятся ваши изображения (в моем примере это называлось «Images.resx») .