最近为Android和iOS Xamarin Forms应用程序引入了Xamarin Forms Previewer。(https://developer.xamarin.com/guides/xamarin-forms/xaml/xaml-previewer/)
想知道Xamarin Forms Previewer如何在内部工作。 我的意思是当在xaml文件中完成更改时,如何将本机控件呈现给预览器。
我可以从github(https://github.com/xamarin/Xamarin.Forms)找到Xamarin Forms源代码。
但是Xamarin Forms Previewer源代码开源的来源是否也可以参考,以便更好地理解Xamarin Forms Previewer的工作原理?
由于
答案 0 :(得分:3)
预览器的源代码不在Xamarin.Forms存储库中。
它的工作方式正如您所期望的那样:
当IDE检测到文件更改时,预览器会要求Xamarin.Forms
呈现Page
,但不是使用程序集中捆绑的XAML
文件(需要重建),预览器提供了自己的XAML
字符串。它通过设置XamlFileProvider
(https://github.com/xamarin/Xamarin.Forms/blob/master/Xamarin.Forms.Xaml/XamlLoader.cs#L42)来实现。
当Xamarin.Forms加载一个Page时,它会检查该Loader并改为使用该文件:https://github.com/xamarin/Xamarin.Forms/blob/master/Xamarin.Forms.Xaml/XamlLoader.cs#L138
随意使用此信息以更好地了解其工作原理,但不要考虑构建使用该机制的内容。这些是内部API,然后可以更改,恕不另行通知。
答案 1 :(得分:0)
执行此操作的最佳方法是阅读源代码。不幸的是,免费访问(GitHub)的预览器没有源代码。