【发布时间】:2019-02-19 02:46:39
【问题描述】:
我正在尝试将一个简单的 WPF 程序移植到 UWP。它是一种将一些自定义图像分析例程应用于一堆图像的工具。
基本功能:
- 将图片添加到图库视图(可能是 100,000 张图片)
- 对图像运行分析
- 导出数据
我遇到的问题是在图库中显示图像。
在 WPF 中,我可以将 ListBox 绑定到 InputImage 的 ObservableCollection,例如 <Image Source={Binding Image, IsAsync=True} />
public class InputImage
{
public string Path { get; set; }
public BitmapImage Source
{
get
{
var image = new BitmapImage(new Uri(Path, UriKind.Absolute));
image.Freeze();
return image;
}
}
}
UWP 中的等价物是什么?
- 我已经尝试了上述方法(减去
IsAsync和Freeze部分),但图像的宽度和高度为0。 - 我想也许我必须从路径中创建一个
StorageFile,打开它并设置位图源,但我不能在属性 getter 中使用async方法...
有什么解决办法吗?
注意:我在 appxmanifest 中启用了 broadFileSystemAccess" 并在设置 -> 隐私 -> 文件系统中为应用打开了
【问题讨论】:
-
您好,您可以将列表视图中的图像来源绑定到包含 uri 的字符串。无需创建 BitmapImagesource
-
@thezapper 这是我使用
file:///样式URI 的第一种方法,但它在UWP 中不起作用,只是一个空白图像。 (我实际上正在使用 GridView 但这可能并不重要)。如果 URI 指向程序集中的某些内容(例如 Assets/...),则它可以工作,但不能在外部。 -
愿你的图片大小是 zip。
-
@lindexi 解决了它 - 请参阅我的答案。
标签: uwp