如何在Xamarin应用程序中使用第三方控件?

如何在Xamarin应用程序中使用第三方控件?,xamarin,controls,Xamarin,Controls,因为我对Xamarin的经验有限,所以我不确定这是一个简单还是复杂的问题 如果我想为Android、iOS和Windows Phone创建一个应用程序,但我有一个第三方控件或库,我需要包括如何做到这一点 例如,我想使用XYZ公司的SuperPicture控件,该控件上有一些函数,用于加载图像、裁剪图像等 对于每个平台,该控件或库是否必须由XYZ实现 或者XYZ是否必须提供Xamarin“已启用”控件\库 还是我必须自己用某种方式把它包起来 如果每个平台上的功能因名称或功能略有不同,该怎么办 X

因为我对Xamarin的经验有限,所以我不确定这是一个简单还是复杂的问题

如果我想为Android、iOS和Windows Phone创建一个应用程序,但我有一个第三方控件或库,我需要包括如何做到这一点

例如,我想使用XYZ公司的SuperPicture控件,该控件上有一些函数,用于加载图像、裁剪图像等

  • 对于每个平台,该控件或库是否必须由XYZ实现
  • 或者XYZ是否必须提供Xamarin“已启用”控件\库
  • 还是我必须自己用某种方式把它包起来
  • 如果每个平台上的功能因名称或功能略有不同,该怎么办
  • Xamarin 3(含Xamarin形式)是否使这更容易

    • 有很多方法可以做到这一点:

      • Xamarin的组件可用于一个或多个平台
      • 组件可以通过每平台dll或跨平台PCL中的nuget提供
      • 需要创建一个本机(JavaJAR或IOSLib/framework)库。有些公司可能会提供Xamarin绑定,或者您可能会发现社区中有人共享的现有绑定,或者您可能需要自己完成
      • 如果API对于每个平台都不相同,那么您需要编写特定于平台的代码来使用它,或者创建一个公共的facade层,等等
      • Xamarin3并没有从根本上改变这个问题,尽管它引入了对的支持,这是另一种跨平台代码的实现方式

      Xamarin组件是基于每个平台开发的。如果是跨平台的,它是在每个平台上独立开发的

      如果您希望为平台使用现有控件,Xamarin确实提供了编写包装器(假设不存在包装器)以用于Xamarin项目的功能

      使用Xamarin.Forms(在xamarin3中)可以开发跨平台的组件,只要它使用可用的X.Forms组件(和实现的属性)。尽管现实中,由于X.Forms提供的控件和属性有限,每个平台仍然有一些自定义代码