我可以在班上使用什么类型的图像

时间:2017-11-10 13:17:43

标签: c# xamarin.forms .net-standard

我在C#中有以下课程:

class User
{
  string ID { get; set; }
  string Name { get; set; }
  Image Avatar { get; set; }
}

System.Drawing中的Xamarin.forms中没有Image类型,那么正确的类型是什么?

修改 该映像将本地存储在设备的文件系统上或在AWS S3存储上在线存储。

编辑2:该类包含在.net标准2类库中,我将其用作我的Xamarin.Forms应用程序中的模型。因此我不能在库中使用Xamarin.Forms.Image。

4 个答案:

答案 0 :(得分:2)

基于Documentation

  Xamarin.Mac .NET 4.5或Mobile框架的Unified API不支持

System.Drawing。   可以使用sysdrawing-coregraphics库将System.Drawing支持添加到iOS和OS X.

同样引自 Cheesebaron here

  

如果你看一下   http://docs.xamarin.com/guides/android/advanced_topics/assemblies你   将会看到System.Drawing不是所发运的装配的一部分   使用Xamarin.Android时,Xamarin.iOS也是如此。

     

您需要使用Android版本来过滤图片。

答案 1 :(得分:0)

@ S.Akbari mentionedSystem.Drawing不是Xamarin.AndroidXamarin.iOS的一部分。通常在Xamarin.Forms个应用中,您应该使用Xamarin.Forms.Image对象来显示来自设备或来自网址源的图片。

可以找到文件here.

答案 2 :(得分:0)

尝试Splat - 它有cross-platform image class。将它与Akavache组合以缓存图像,然后瞧。

答案 3 :(得分:0)

我已决定转到另一条路径 - byte [],因为Xamarin.Forms.Image有一种从流加载图像的方法:

ImageSource.FromStream(() => new MemoryStream(imageByteArray));

为什么我不去找Splat?它看起来非常有前途,但我有一些针对外部依赖的东西,解决方案看起来很重,特别是考虑到它仅仅是模型。