我能够使用this link中的代码查看.resx文件中的项目列表
using System.Collections;
using System.Globalization;
using System.Resources;
...
string resKey;
ResourceSet resourceSet = MyResourceClass.ResourceManager.GetResourceSet(CultureInfo.CurrentUICulture, true, true);
foreach (DictionaryEntry entry in resourceSet)
{
resKey = entry.Key.ToString();
ListBox.Items.Add(resKey);
}
我现在要做的是创建一个可访问的列表或数组。我该怎么做呢? 为了澄清,我不想创建一个Image容器数组,并使用循环来加载.resx文件中的图像。 感谢
答案 0 :(得分:1)
我不确定我是否正确,但可能这就是你想要的:
var resources = new List<string>();
foreach (DictionaryEntry entry in resourceSet)
{
resources.Add(entry.Key.ToString());
}
<强>更新强>
好的,那么这是另一个解决方案。您可以遍历resourceSet的值,如果有任何值是Bitmap
- 将其转换为BitmapImage并添加到列表中。像这样:
var images = resourceSet.Cast<DictionaryEntry>()
.Where(x => x.Value is Bitmap)
.Select(x => Convert(x.Value as Bitmap))
.ToList();
public BitmapImage Convert(Bitmap value)
{
var ms = new MemoryStream();
value.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
var image = new BitmapImage();
image.BeginInit();
ms.Seek(0, SeekOrigin.Begin);
image.StreamSource = ms;
image.EndInit();
return image;
}