如何在Windows 8的Xamarin Forms中显示任意文件夹中的图像

onu*_*ade 2 xamarin xamarin.windows

这可能是一匹死马,但我需要能够在Xamarin应用程序之外提供一个充满图像的本地文件夹-而不是作为资源,不需要编译以添加更多图像-并在应用程序中的Image对象中显示这些图像。我的主要目标平台是Windows10。其他功能不错,不是必需的。

Xamarin Forms Image通常采用文件名(无路径)或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);
Run Code Online (Sandbox Code Playgroud)

我发现的大多数文章都解释了如何将图像与应用程序捆绑在一起作为源代码的一部分。再次,我需要从文件夹中将它们显示在应用程序中,而不会与应用程序捆绑在一起。用户应该能够向文件夹中添加更多图像,并且他们可以在应用程序中工作而无需重新编译/重新安装-例如图像库。

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

Jas*_*son 5

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

或者,您可以使用PCLStorage

  var f = await FileSystem.Current.LocalStorage.GetFileAsync (path);

  Stream s = await f.OpenAsync (FileAccess.Read);
  image.Source = ImageSource.FromStream(() => s);
Run Code Online (Sandbox Code Playgroud)