是否可以列出所有添加到程序集并标记为资源(未嵌入)的文件。
我试过GetManifestResourceNames方法。它仅适用于嵌入式资源。但我需要将该文件标记为资源,以便使用 uri 访问该文件,例如pack://application:,,,/ApplicationName;component/Resources/logo.png
谢谢
是否可以列出所有添加到程序集并标记为资源(未嵌入)的文件。
我试过GetManifestResourceNames方法。它仅适用于嵌入式资源。但我需要将该文件标记为资源,以便使用 uri 访问该文件,例如pack://application:,,,/ApplicationName;component/Resources/logo.png
谢谢
您可以像这样访问它:
var image = new BitmapImage(new Uri("pack://application:,,,/ApplicationName;component/Resources/logo.png", UriKind.Absolute))
[编辑]
您可以通过调用此方法列出所有这些:
public static string[] GetResourceNames()
{
var asm = Assembly.GetEntryAssembly();
string resName = asm.GetName().Name + ".g.resources";
using (var stream = asm.GetManifestResourceStream(resName))
using (var reader = new System.Resources.ResourceReader(stream))
{
return reader.Cast<DictionaryEntry>().Select(entry => (string)entry.Key).ToArray();
}
}