UWP WIndows-10在应用程序中加载图像

时间:2016-05-25 00:39:25

标签: c# xaml visual-studio-2015 windows-10-universal

我有一个针对Windows UWP平台的C#应用​​。 App在列表视图中显示图像。根据查询,这些图像可以来自应用程序

  1. 容器( / Assets / 文件夹)
  2. 在线资讯
  3. 本地来源

  4. 当图片的来源位于应用程序的容器或在线源中时,我可以将图像源绑定到XAML中的有效URI以获取图像。
    当图像的源是本地的时,图像的URL是专有的&我们使用自己的 imge_fetch api从我们的服务器获取图像。

    我的问题是如何指定一个XAML绑定,它能够获取uri(当图像来自应用程序的容器或在线源)或BitmapImage(由我们的 image_fetch返回) apis)


    我已查看过有关IValueConverter的帖子 我想知道,如果在UWP中有更好/更容易的方式去做我想要实现的目标。

1 个答案:

答案 0 :(得分:3)

您可以使用类型为object的源属性创建一个视图模型项类,以便您可以分配stringUriImageSource

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")) },
};