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等等->
  • 相关阅读:
    Eclipse 卸载插件
    ubuntu下载linuxkernel source code
    Android原生态下载错误解决方法
    linux下查看文件或者文件夹属性和大小
    linux 进行hash校验方法
    Mercury迷你150M无线路由器设置
    xubuntu 12.10 安装jdk1.6
    Linux下stardic和goldendict等词典的词库下载
    Web前端面试指导(九):盒子模型你是怎么理解的?
    Web前端面试指导(十二):::before 和:before有什么区别?
  • 原文地址:https://www.cnblogs.com/dskin/p/15614070.html
Copyright © 2011-2022 走看看