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等等->
  • 相关阅读:
    .NET : 单元测试到底给我们带来什么
    .NET : 如何将16进制颜色代码转换为十进制
    LINQ : 谈谈LINQ TO SQL中的直接加载和延迟加载
    .NET : 单元测试的几个Attribute介绍
    .NET : 在单元测试中使用外部文件作为数据源
    再来谈谈json
    .NET : 关于图片格式的问题
    VSTS : 比较性能基准
    .NET : 如何将大文件写入到数据库中
    LINQ : 如何在JOIN或者GROUP BY的时候使用复合键
  • 原文地址:https://www.cnblogs.com/dskin/p/15614070.html
Copyright © 2011-2022 走看看