avalonia是什麼?
avalonia是一個強大的框架,使開發人員能夠使用.net創建跨平台應用程式。它使用自己的渲染引擎繪製ui控制項,確保在windows、macos、linux、android、ios和webassembly等不同平台上具有一致的外觀和行為。這意味著開發人員可以共享他們的ui代碼,並在不同的目標平台上保持統一的外觀和感覺。
mit 協議的寬鬆與便利
mit 協議(the mit license)是一種簡潔且寬鬆的開源軟體許可協議。它允許使用者自由使用、複製、修改、合併、發布、分發、再許可和/或銷售軟體複本。使用者在軟體和軟體的所有複本中都必須包含版權聲明和許可聲明。mit 協議對使用者的限制很少,基本上賦予了使用者極大的自由,適用於各種開源項目,鼓勵代碼的共享和重用,促進軟體技術的快速發展。
dotnet和avalonia都是mit協議,相關的代碼地址是:
- Dotnet:https://github.com/microsoft/dotnet
- Avalonia:https://github.com/AvaloniaUI/Avalonia
semi.avalonia和ursa.avalonia
(一)semi.avalonia - 主題風格的魅力實現
semi.avalonia,這是以 mit 協議開源的 avalonia ui 框架下的 semi design 主題風格的精妙呈現。它為應用程式帶來獨特的視覺風格,如同一幅精美的畫卷,為用戶界面增添了豐富的色彩和質感。

其倉庫地址為:https://github.com/irihitech/Semi.Avalonia
(二)ursa.avalonia - 自定義控制項的創新力量
搭配同樣遵循 mit 協議的ursa.avalonia自定義控制項庫,更是如虎添翼。它們攜手為開發者締造全新的視覺與功能體驗,仿佛為開發之旅開啟了一扇通往無限可能的大門。

倉庫地址:https://github.com/irihitech/Ursa.Avalonia
在信創及國產作業系統領域表現
值得一提的是,这两个库在信创及国产操作系统领域表现出色,已完成与龙芯 3A6000 和龙架构(LoongArch™)的兼容互认证,这是自主可控和国产化技术推进的重要成果。
下面信息引用来自微信公众号【铱泓科技】8月2号的文章 《Ursa与Semi正式完成龙架构兼容互认证》:
大熊ursa和semi兩大avalonia控制項集已經完成與龍芯3a6000和龍架構(loongarch™)的兼容互認證。這一重要的里程碑標誌著我們在推進自主可控和國產化技術方面取得了新的進展。

控制項部分截圖
控制項雖各有特色,但都展現出獨特的魅力。簡單截取幾張圖,讓您一窺其貌:
semi.avalonia主題庫一覽:

ursa.avalonia自定義控制項庫一覽:

實際案例分享
站長公司項目使用了該控制項,雖不便截圖展示,但可參考站長使用 avalonia ui 搭配該主題及控制項庫編寫的工具codewf.toolbox:
倉庫:https://github.com/dotnet9/CodeWF.Toolbox
該小工具使用avalonia+prism 8模塊化開發,aot 發布後的文件組織結構:

其具備黑白主題,營造出不同的視覺氛圍:
![]() |
![]() |
還實現了國際化功能,為全球用戶提供便捷體驗:

同時,包含實用的 json 美化工具和 yaml 轉 json 工具,分別如下圖所示:
json 美化工具

yaml轉json工具

使用經驗分享
- 官方文檔
- semi文檔:https://docs.irihi.tech/semi
- ursa文檔:https://docs.irihi.tech/ursa/
- 源碼閱讀
首先,克隆控制項倉庫(上面給出了地址),依據 readme 及 demo 運行效果進行查找。例如,若覺得 button 的 warning 效果出色:

可使用 vs code 或 vs 打開倉庫:

- 展開semi.avalonia.demo
- 找到pages目錄,打開buttondemo.axaml
- 根據界面關鍵字solid、waring找到需要的樣式
如此,便能輕鬆駕馭這些優秀的控制項,為開發工作增添效率與魅力。希望本文能為您在 avalonia 開源控制項庫的探索之旅中提供有益的指引和啟發,讓您在開發道路上創造出更加精彩的應用程式。

