CPF C#跨平台UI框架发布安卓端预览版

CPF C#跨平台UI框架发布安卓端预览版

CPF的安卓端适配采用Xamarin的安卓绑定库,而不是Xamarin.Form。CPF和flutter差不多,完全由skia绘制,基本不依赖原生控件。

当前还只是预览版,不建议用在正式项目中。

可能有人会问,你这个和Maui和Xamarin.Form有什么区别

1、CPF的控件完全由skia绘制,保证各个平台一致性,不管是显示还是行为。Maui和Xamarin.Form主要还是封装原生控件为主。

2、不需要写Xaml,采用C#描述UI,css写样式

项目结构,一个是Xamarin.Android项目,一个是NET Standard类库项目,主要代码写在类库项目里,而Xamarin.Android项目里只要定义适配器和启动的视图就行

安卓端的差异:

PC端是program.cs的里面有Main方法来初始化和启动,安卓端需要安卓Activity来初始化启动

安卓端的是MainView不是Window,MainView加载样式是通过

Root.LoadStyleFile("res://ClassLibrary1/Stylesheet1.css");

MainView不能修改尺寸,不能移动

安卓端无法使用窗体的ShowDialogSync这种同步阻塞的方法

其他细节:

元素尺寸是标准的像素尺寸,和Chrome的移动端网页仿真一致,不过设计器里暂时没有移动端设备尺寸列表

支持内嵌原生控件,不过原生控件只能在最前端,就像wpf里的WinformHost。

比如你可以在MainView里定义一个公共的静态委托

public static Func<object> CreateNativeControl;

然后在Xamarin.Android的MainActivity里初始化这个委托,绑定一个创建安卓原生控件的方法

最后在添加个NativeElement 元素,调用委托把创建的控件赋值给Content属性

当前还只是预览版,不建议用在正式项目中。

案例源码下载

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部