Xamarin.Forms.View 的快照
Snapshot of a Xamarin.Forms.View
我正在使用 Xamarin.Forms 制作应用程序,我需要制作视图的快照(包括当前不可见的部分)。我完全知道如何在 android 上执行此操作,但我还没有找到有关如何在 Xamarin.Forms 上执行此操作的任何线索。查看
有没有办法做到这一点?
我无法在 android 中编写代码,因为包含对视图的所有引用的项目是一个 xamarin 表单项目,但是如果有一些 xamarin 技巧可以从 class 在 .droid 项目中也很有帮助!
我不知道这是否相关,但我正在为 android 使用自定义渲染器,如果有一种方法可以将视图与其渲染器进行通信,那将很有帮助。
提前致谢!
您正在寻找服务。有几种方法可以创建服务。一种方法是使用 DependencyService。该文章中可能不清楚的是,您需要将 [assembly:Xamarin.Forms.Dependency...] 属性 放在 命名空间之前 class:
使用 xyz...
[组装:Xamarin.Forms.Dependency...]
public class MyService:IMyInterface{...}
然后获取对您的本机代码的引用,使用
DependencyService.Get()
另一种方法是使用 Resolver - 本质上是一样的,但注册不依赖于属性。
然后您的服务需要找到对本机视图的引用才能将其呈现为位图。这里有很多选项:您可以看到 Forms 是如何做的,但他们可能会改变它,或者您可以简单地以适合您的方式跟踪您自己的自定义视图及其渲染器(自定义对象 属性 在您的表单上class,全局注册表...)。完成后,您就有了本机服务和需要传递给它的对象,它可以 return 流或图像或只是保存到文件 - 也取决于您的需要。
我正在使用 Xamarin.Forms 制作应用程序,我需要制作视图的快照(包括当前不可见的部分)。我完全知道如何在 android 上执行此操作,但我还没有找到有关如何在 Xamarin.Forms 上执行此操作的任何线索。查看 有没有办法做到这一点?
我无法在 android 中编写代码,因为包含对视图的所有引用的项目是一个 xamarin 表单项目,但是如果有一些 xamarin 技巧可以从 class 在 .droid 项目中也很有帮助!
我不知道这是否相关,但我正在为 android 使用自定义渲染器,如果有一种方法可以将视图与其渲染器进行通信,那将很有帮助。
提前致谢!
您正在寻找服务。有几种方法可以创建服务。一种方法是使用 DependencyService。该文章中可能不清楚的是,您需要将 [assembly:Xamarin.Forms.Dependency...] 属性 放在 命名空间之前 class:
使用 xyz... [组装:Xamarin.Forms.Dependency...] public class MyService:IMyInterface{...}
然后获取对您的本机代码的引用,使用
DependencyService.Get()
另一种方法是使用 Resolver - 本质上是一样的,但注册不依赖于属性。
然后您的服务需要找到对本机视图的引用才能将其呈现为位图。这里有很多选项:您可以看到 Forms 是如何做的,但他们可能会改变它,或者您可以简单地以适合您的方式跟踪您自己的自定义视图及其渲染器(自定义对象 属性 在您的表单上class,全局注册表...)。完成后,您就有了本机服务和需要传递给它的对象,它可以 return 流或图像或只是保存到文件 - 也取决于您的需要。