显示来自隔离存储的PNG图像
本文关键字:PNG 图像 存储 隔离 显示 | 更新日期: 2023-09-27 18:02:20
我已经工作了几天,试图弄清楚如何保存和加载图像到孤立的存储。昨天,我终于设法解决了我存储它们时遇到的任何问题,但现在我需要将图像添加为菜单项的图标,我不知道我的代码有什么问题:
var image = new System.Windows.Controls.Image();
using(var stream = new IsolatedStorageFileStream((string) (directory + file + ext),
FileMode.Open, IsolatedStorageFile.GetUserStoreForAssembly()))
{
image.Source = (BitmapSource) new PngBitmapDecoder(stream,
BitmapCreateOptions.PreservePixelFormat,
BitmapCacheOptions.Default).Frames[0];
}
Menu menu = new Menu();
MenuItem item = new MenuItem();
item.Header = file;
item.Icon = image;
menu.Items.Add(item);
该图像在菜单中显示为正确的大小,但它是一个空白图像。当我在Windows照片查看器中预览图像时,图像文件显示图像很好。
我对c#和WPF仍然很陌生(只使用了3个月),我正在寻找一个简单的解决方案,不需要真正优雅或通用;它只需要工作
我想我会在请求帮助半小时后回答自己的问题。我在网上搜了好几天想弄明白,结果就这么顺手找到了。我只需要用正确的FileAccess实例化我的流:
我只是替换了
using(var stream = new IsolatedStorageFileStream((string) (directory + file + ext),
FileMode.Open, IsolatedStorageFile.GetUserStoreForAssembly()))
using(var stream = IsolatedStorageFile.GetUserStoreForAssembly().OpenFile(
(string) (directory + file + ext), FileMode.Open, FileAccess.Read))