我正在尝试从WPF窗口中的文件加载位图图像,但是我在下面的EndInit()行上抛出异常
BitmapImage img = new BitmapImage();
img.BeginInit();
img.CacheOption = BitmapCacheOption.OnLoad;
img.UriSource = PackUriHelper.Create(new Uri(@"pack://application:,,,/Images/TestImage.png", UriKind.Absolute));
img.EndInit();
img.Freeze();
有什么想法吗?如果它与所有这些相关,则WPF窗口将托管在本机应用程序中。
答案 0 :(得分:0)
我现在已经开始工作 - 我相信这个例外被抛出,因为我试图在加载任何xaml资源之前解析/加载BitmapImage
。我强制将BitmapImage
初始化为绑定的Image属性的getter,它不再抛出。
我还注意到我能够正确地从XAML本身解析pack:// URI。
private BitmapImage _listIcon;
public BitmapImage ListIcon
{
get
{
if (_listIcon == null)
{
_listIcon = ProvideListIcon();
}
return _listIcon;
}
}
protected override BitmapImage ProvideListIcon()
{
BitmapImage img = new BitmapImage(new Uri("pack://application:,,,/[Project];Component/Images/TestImage.png", UriKind.RelativeOrAbsolute));
if (img.CanFreeze)
{
img.Freeze();
}
return img;
}