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屬性
當前還只是預覽版,不建議用在正式項目中。