CPF的安卓端适配采用Xamarin的安卓绑定库,而不是Xamarin.Form。CPF和flutter差不多,完全由skia绘制,基本不依赖原生控件。
当前还只是预览版,不建议用在正式项目中。
可能有人会问,你这个和Maui和Xamarin.Form有什么区别?
1、CPF的控件完全由skia绘制,保证各个平台一致性,不管是显示还是行为。Maui和Xamarin.Form主要还是封装原生控件为主。
2、不需要写Xaml,采用C#描述UI,css写样式
![CPF C#跨平台UI框架发布安卓端预览版_第1张图片](http://img.e-com-net.com/image/info8/b160183fda554214a9694ef52f2cae28.jpg)
![CPF C#跨平台UI框架发布安卓端预览版_第2张图片](http://img.e-com-net.com/image/info8/762ad512034e441c8fa98943cabc5c00.jpg)
![CPF C#跨平台UI框架发布安卓端预览版_第3张图片](http://img.e-com-net.com/image/info8/b3ab29e4c2f246f5a2fbab0f98c47796.jpg)
项目结构,一个是Xamarin.Android项目,一个是NET Standard类库项目,主要代码写在类库项目里,而Xamarin.Android项目里只要定义适配器和启动的视图就行
![CPF C#跨平台UI框架发布安卓端预览版_第4张图片](http://img.e-com-net.com/image/info8/feb0cd30556b43d1bd1abe0096588f25.jpg)
![CPF C#跨平台UI框架发布安卓端预览版_第5张图片](http://img.e-com-net.com/image/info8/6d1e6d3a5bdf4ec4b706800b2e3336fb.jpg)
![CPF C#跨平台UI框架发布安卓端预览版_第6张图片](http://img.e-com-net.com/image/info8/f9afb781a991430a979c30c31401a1ff.png)
安卓端的差异:
PC端是program.cs的里面有Main方法来初始化和启动,安卓端需要安卓Activity来初始化启动
安卓端的是MainView不是Window,MainView加载样式是通过
Root.LoadStyleFile("res://ClassLibrary1/Stylesheet1.css");
MainView不能修改尺寸,不能移动
安卓端无法使用窗体的ShowDialogSync这种同步阻塞的方法
其他细节:
元素尺寸是标准的像素尺寸,和Chrome的移动端网页仿真一致,不过设计器里暂时没有移动端设备尺寸列表
![CPF C#跨平台UI框架发布安卓端预览版_第7张图片](http://img.e-com-net.com/image/info8/0b2734164d214bf5a108da59de68ef17.png)
![CPF C#跨平台UI框架发布安卓端预览版_第8张图片](http://img.e-com-net.com/image/info8/746e72abea5a47369269319e7ffb777a.jpg)
支持内嵌原生控件,不过原生控件只能在最前端,就像wpf里的WinformHost。
比如你可以在MainView里定义一个公共的静态委托
public static Func