WinRT:图像 - 如果不包含在资源中,则不会显示图像

时间:2012-12-16 22:49:48

标签: wpf xaml data-binding windows-runtime winrt-xaml

我的Windows应用商店应用/ Metro / Win RT应用将服务器上的图像下载到某个本地文件夹。我需要在运行时将Image控件绑定到下载的图像。

问题是除非我将图像作为二进制资源添加到项目中,否则图像不会显示。

我下载的图像存储在ProjectFolder / Data / Media中。现在,这是我如何将图像源绑定到图像控件。

<Image x:Name="WriterImage"  Stretch="None" Source="{Binding Path=PersonData.Photo.MediaImageSource"></Image>

public ImageSource MediaImageSource
{
    // Here _MediaUrl gets a value: ms-appx:///Data/Media/Writer1.jpg   
    BitmapImage source = new BitmapImage(new Uri(_MediaUrl));

} 

仅当我将Writer1.jpg作为资源添加到项目中时才有效。如果我从项目中删除它,它就不会显示出来。

1 个答案:

答案 0 :(得分:1)

请注意,您的应用程序可以访问不同的URL方案:

ms-appx:///是一个只读位置,指的是与您的应用程序一起包含(编译)的文件,例如资源。

ms-appdata:///local/指的是应用程序的本地读写存储。如果您正在下载文件,我猜您应该使用此URL方案。

对于上面的示例,我会尝试使用以下网址:

ms-appdata:///local/Data/Media/Writer1.jpg

有关URL(URI)方案的更多信息,请参阅以下内容:http://msdn.microsoft.com/en-us/library/windows/apps/jj655406.aspx