BitmapImage文件在构建时未发现异常(PresentationCore.resources)
本文关键字:PresentationCore resources 异常 未发现 文件 构建 BitmapImage | 更新日期: 2023-09-27 18:08:27
我在wpf中有一个BitmapImage的问题。当我创建它时,它给出了一个filenotfound异常,它说它缺少PresentationCore。资源组装。但是我已经把它添加到我的引用列表,它仍然抛出相同的异常
Uri filename = new Uri(@"D:'barcode_zwart_wit.jpg", UriKind.Absolute);
BitmapImage image = new BitmapImage(filename); //<-- FileNotFound Exception
- 图片没有在其他地方打开 我已经检查了PresentationCore的版本。
这些行位于属性的setter中,它首先在usercontrol的构造函数中启动。Visual Studio 2010, .net v4
问题可能是图像的颜色配置文件不可用。使用BitmapImage。属性来忽略颜色配置文件信息,如下所示:
var bmp = new BitmapImage();
bmp.BeginInit();
bmp.CreateOptions = BitmapCreateOptions.IgnoreColorProfile;
bmp.UriSource = uri;
bmp.EndInit();
// Use the bmp variable for further processing and dispose it
我有同样的问题与一些.jpg
图像,这解决了它。
我通过使用AppDomain.CurrentDomain.AssemblyResolve解决了这个问题。如果找不到某个程序集,就会调用这个事件。
在构造函数:AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
CurrentDomain_AssemblyResolve:
Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
string missingAssemblyName = args.Name.Remove(args.Name.IndexOf(',');
if ( missingAssemblyName == "PresentationCore.resources" )
{
string s = "C:'Program Files'Reference Assemblies'Microsoft'Framework'.NETFramework'v4.0'PresentationCore.resources.dll";
return Assembly.LoadFile(s);
}
return;
}