Avalonia开源控件库强力推荐-Semi.Avalonia
Avalonia是什么?
Avalonia是一个强大的框架,使开发人员能够使用.NET创建跨平台应用程序。它使用自己的渲染引擎绘制UI控件,确保在Windows、macOS、Linux、Android、iOS和WebAssembly等不同平台上具有一致的外观和行为。这意味着开发人员可以共享他们的UI代码,并在不同的目标平台上保持统一的外观和感觉。
MIT 协议的宽松与便利
MIT 协议(The MIT License)是一种简洁且宽松的开源软件许可协议。它允许使用者自由使用、复制、修改、合并、发布、分发、再许可和 / 或销售软件副本。使用者在软件和软件的所有副本中都必须包含版权声明和许可声明。MIT 协议对使用者的限制很少,基本上赋予了使用者极大的自由,适用于各种开源项目,鼓励代码的共享和重用,促进软件技术的快速发展。
Dotnet和Avalonia都是MIT协议,相关的代码地址是:
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 开源控件库的探索之旅中提供有益的指引和启发,让您在开发道路上创造出更加精彩的应用程序。
Avalonia开源控件库强力推荐-Semi.Avalonia的更多相关文章
- Win10 UWP开发系列——开源控件库:UWPCommunityToolkit
在开发应用的过程中,不可避免的会使用第三方类库.之前用过一个WinRTXamlToolkit.UWP,现在微软官方发布了一个新的开源控件库—— UWPCommunityToolkit 项目代码托管在G ...
- [原创][开源]SunnyUI.Net, C# .Net WinForm开源控件库、工具类库、扩展类库、多页面开发框架
SunnyUI.Net, 基于 C# .Net WinForm 开源控件库.工具类库.扩展类库.多页面开发框架 Blog: https://www.cnblogs.com/yhuse Gitee: h ...
- C# WPF开源控件库:MahApps.Metro
其实站长很久之前就知道这个开源WPF控件库了,只是一直欣赏不了这种风格,但也star了该项目.每次浏览该仓库时,发现star越来越多,也看到很多网友对它的褒奖,所以今天就向大家推荐这款WPF控件库. ...
- 《Dotnet9》系列-开源C# Winform控件库强力推荐
时间如流水,只能流去不流回! 点赞再看,养成习惯,这是您给我创作的动力! 本文 Dotnet9 https://dotnet9.com 已收录,站长乐于分享dotnet相关技术,比如Winform.W ...
- 《Dotnet9》系列-开源C# WPF控件库强力推荐
时间如流水,只能流去不流回! 点赞再看,养成习惯,这是您给我创作的动力! 本文 Dotnet9 https://dotnet9.com 已收录,站长乐于分享dotnet相关技术,比如Winform.W ...
- Github 开源:升讯威 Winform 开源控件库( Sheng.Winform.Controls)
Github 地址:https://github.com/iccb1013/Sheng.Winform.Controls 本控件库中的代码大约写于10年前(2007年左右),难免有不成熟与欠考虑之处, ...
- Winform 开源控件库( Sheng.Winform.Controls)
升讯威 .Net WinForm 控件库提供了超过15种 Winform 控件,你可以直接使用本控件库,更可以通过本控件库学到 Winform 控件开发的方法和理念. 你可以学习到: 如何基于 Con ...
- iOS开源控件库收集
下拉刷新 将数据保存至keyRing 简单的模板引擎,用来生成html OmniGroup 这个其实不是类库,是一个Cocoa的Recipe CocoaPods 为XCode project提供一个类 ...
- C# WPF开源控件库MaterialDesign介绍
介绍 1.由于前端时间萌发开发一个基础架构得WPF框架得想法, 然后考虑到一些界面层元素统一, 然后就无意间在GitHub上发现一个开源WPF UI, 于是下载下来了感觉不错. 官网地址:http:/ ...
- WPF使用MaterialDesign开源控件库
在WPF控件效果这一块,很显然比winfrom要好很多,但想要做出真正好看的控件,我个人觉得还是需要用一些已有的东西比较好,比如MaterialDesign,控件种类多,自带很多图标,上手比较容易,还 ...
随机推荐
- 23 暑假友谊赛 No.3
23 暑假友谊赛 No.3 Problem - B - Codeforces 贪心吧,每次看哪块瓷砖划算就尽量多的放哪块 #include <bits/stdc++.h> #define ...
- 离线安装python包
1.制作requirement.txt pip freeze > requirements.txt 2.离线下载安装包 #下载单个离线包 pip download -d your_offline ...
- freertos学习(九)软件定时器
软件定时器 软件定时器是freeRTOS通过一个硬件定时器,实现的定时器.可以实现不同时长的多个定时任务 不从中断上下文中执行定时器回调函数(不消耗任何处理时间) 实现流程 设置软件定时器,推入定时器 ...
- springjdbc处理nvarchar
当我们使用spring-jdbc来做持久化时(注意不是spring-data-jbc),有时候一些特殊字符存入数据库时会用到nvarchar.nvarchar2这种类型(比如存放化学式,如CO₂等), ...
- Android Adapter 添加数据,忽然变成倒序
忽然出现的问题,最后发现:因为RecyclerView 调用 setLayoutManager方法时,最后一个参数是否显示分割线为true 改为false即可
- 全网最适合入门的面向对象编程教程:44 Python内置函数与魔法方法-重写内置类型的魔法方法
全网最适合入门的面向对象编程教程:44 Python 内置函数与魔法方法-重写内置类型的魔法方法 摘要: 在 Python 中,内置类型的行为是通过一组特殊的"魔法方法"来实现的, ...
- c++异步回调函数引用传递空指针异常
c++异步回调函数引用传递空指针异常 问题描述 最近使用 c++ / qt 开发的一个桌面应用,运行到一处异步执行python脚本任务的方法处报错: 进程已结束,退出代码-1073741819 (0x ...
- 合合信息扫描全能王发布“黑科技”,让AI替人“思考”图像处理问题
现阶段,手机扫描正越来越多地进入到人们的生活中.随着扫描应用场景的不断拓宽,诸多细节的问题逐渐显露,比如使用者在拍照扫描文档时,手指不小心"入镜"了,只能重拍:拍电脑屏幕时,画面上 ...
- chainLink vrf实验
目标 用vrf写一个随机红包 数据结构 红包: struct Envelope { Type t; // 类型,只是erc20 和eth红包 ERC20 token; // erc20 ,如果是erc ...
- RxJS 系列 – Custom Operator
前言 虽然 RxJS 提供了非常多的 Operators. 但依然会有不够用的时候. 这时就可以自定义 Operator 了. Operator Is Just a Function Observab ...

