Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Windows 8上以Xamarin窗体显示任意文件夹中的图像_Xamarin_Xamarin.windows - Fatal编程技术网

如何在Windows 8上以Xamarin窗体显示任意文件夹中的图像

如何在Windows 8上以Xamarin窗体显示任意文件夹中的图像,xamarin,xamarin.windows,Xamarin,Xamarin.windows,这可能是一匹死马,但我需要能够在Xamarin应用程序之外提供一个本地文件夹,其中包含大量图像—不作为资源,不需要编译来添加更多图像—并在应用程序中以图像对象的形式显示这些图像。我的主要目标平台是Windows10。其他人很好,不需要 Xamarin表单映像通常采用文件名(无路径)或URI。我无法从本地文件系统中找到和显示图像的两种方法。我一定是做错了什么 非工作样本: Image i = new Image(); i.Source = ImageSource.FromFile(some.png

这可能是一匹死马,但我需要能够在Xamarin应用程序之外提供一个本地文件夹,其中包含大量图像—不作为资源,不需要编译来添加更多图像—并在应用程序中以图像对象的形式显示这些图像。我的主要目标平台是Windows10。其他人很好,不需要

Xamarin表单映像通常采用文件名(无路径)或URI。我无法从本地文件系统中找到和显示图像的两种方法。我一定是做错了什么

非工作样本:

Image i = new Image();
i.Source = ImageSource.FromFile(some.png); // Needs to be from folder on local disk
grid.Children.Add(i, c, r);
我发现的大多数文章都解释了如何将图像作为源代码的一部分捆绑到应用程序中;同样,我需要在应用程序中从文件夹中显示它们,而无需将它们与应用程序捆绑。用户应该能够向文件夹中添加更多图像,并且他们可以在应用程序中工作,而无需重新编译/重新安装,就像图像库一样


编辑:我能够使用PCLStorage成功读取文本文件。有没有办法将其连接到Xamarin表单图像?

基本上,您不能。如果不将图像与应用程序捆绑,则必须以某种方式将图像传输到应用程序。最常见的情况是,您在某个web服务器上提供这些图像,应用程序从该web服务器下载图像。

您需要编写特定于平台的类来读取图像并返回StreamImageSource可能使用的流。然后,可以使用将此行为公开给窗体PCL

或者,您可以使用


我能够使用PCLStorage从磁盘读取文本文件(参见上面的注释)。这对图像有效吗?是的,您应该能够返回StreamImageSource可以使用的流!非常感谢。我需要了解整个asyc/await模式(我只是一个业余的c#developer:-),但传递流是有效的。非常感谢。
  var f = await FileSystem.Current.LocalStorage.GetFileAsync (path);

  Stream s = await f.OpenAsync (FileAccess.Read);
  image.Source = ImageSource.FromStream(() => s);