我正在尝试从Windows手机应用程序中的嵌入式资源加载图像
这是我的项目设置:
Module1 =电话申请
Module2 = ClassLibrary.dll
Module1调用Module2为手机应用程序创建所有数据对象。
当Module2创建对象时,我想从资源加载图像。
资源为“Default.png”并保存在“Images”目录中(Build Action = Embedded Resource,Copy to Output Directory = Always Copy)
我正在使用的代码产生异常
ex = {"The request is not supported. "}
以下是代码:
private void LoadImage()
{
Assembly curAssembly = null;
curAssembly = Assembly.GetExecutingAssembly();
string [] names = curAssembly.GetManifestResourceNames();
// names[0] = "Storage.Images.Default.png"
// so I know I am using the correct name
Stream resStream = curAssembly.GetManifestResourceStream("Storage.Images.Default.png");
BitmapImage bitMapImage = new BitmapImage();
try
{
bitMapImage.SetSource(resStream);
}
catch (Exception ex)
{
Debug.WriteLine(ex.ToString());
}
}
你可以帮助新手吗? 感谢
答案 0 :(得分:0)
实现这一目标的步骤:
First Appraoch
然后在你的LoadImage方法中,执行以下操作:
private void LoadImage()
{
Drawing.Bitmap bitMapImage = resource_file.name_of_your_image;
} 强>
注意:在此代码中,我假设您为资源文件选择的名称是“resource_file”
第二种方法
System.Resources.ResourceManager rm = new System.Resources.ResourceManager(this.GetType().Assembly.GetName().Name + ".resource_file", this.GetType().Assembly);
System.Drawing.Bitmap bmp= (System.Drawing.Bitmap)rm.GetObject("Baba");
或者使用可以使用System.Resources.ResourceReader和其他方法
答案 1 :(得分:0)
想出来......
我用来加载资源的名称是错误的......
使用此调用中返回的数组中的名称
string [] names = curAssembly.GetManifestResourceNames();
它完美无瑕地运作