【问题标题】:UWP WIndows-10 Loading images in appUWP WINdows-10 在应用程序中加载图像
【发布时间】:2016-05-25 16:05:03
【问题描述】:
我有一个针对 Windows UWP 平台的 C# 应用程序。应用程序在列表视图中显示图像。根据所做的查询,这些图像可以来自任一应用程序的
- 容器(/Assets/文件夹)
- 在线来源
- 本地来源
当图像的源位于应用程序的容器或在线源中时,我可以将图像源绑定到 XAML 中的有效 URI 以获取图像。
当图像的来源是本地时,图像的 url 是专有的,我们使用自己的 imge_fetch api 从我们的服务器获取图像。
我的问题是如何指定 XAML 绑定,该绑定能够获取 uri(当图像来自应用程序的容器或在线源时)或 BitmapImage(由我们的 image_fetch api 返回)
我已经查看了这篇关于 IValueConverter 的帖子
我想知道,UWP 中是否有更好/更简单的方法来实现我想要实现的目标。
【问题讨论】:
标签:
c#
xaml
visual-studio-2015
windows-10-universal
【解决方案1】:
您可以使用object 类型的源属性创建视图模型项类,以便您可以分配string、Uri 或ImageSource:
public class ImageItem
{
public object ImageSource { get; set; }
}
在 XAML 中,您可以直接绑定到此属性并受益于内置的自动类型转换:
<ListBox ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding ImageSource}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
分配图像项我看起来像这样:
DataContext = new ImageItem[]
{
new ImageItem { ImageSource = "ms-appx:///Assets/StoreLogo.png" },
new ImageItem { ImageSource = new Uri("ms-appx:///Assets/Square150x150Logo.scale-200.png") },
new ImageItem { ImageSource = new BitmapImage(new Uri("ms-appx:///Assets/Square44x44Logo.scale-200.png")) },
};