zoukankan      html  css  js  c++  java
  • 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属性

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

    案例源码下载

    签名:<-CPF C# 跨平台桌面UI框架,支持Windows,Mac,Linux,包括XP,国产麒麟Linux等等->
  • 相关阅读:
    多视点视频的分类和技术标准
    判断任意控制台输入十进制数是否为水仙花数(C++)
    mysql创建新用户并授权限
    Linux下使用sqlplus查询数据时乱行显示问题
    读Strarling有感
    Starling性能优化技巧
    如何在Django Rest Framework中过滤嵌套的序列化器?
    sql 高级教程
    小技巧字符串比较
    WPF MVVM DataGrid数据直更新
  • 原文地址:https://www.cnblogs.com/dskin/p/15614070.html
Copyright © 2011-2022 走看看