建网站外包公司,网站开发学些什么,app设计理念,美食网站设计论文最近在搞一个国产麒麟系统的接口对接#xff0c;因为#xff0c;接口内含复杂的签名验证#xff0c;而且还是离线环境#xff0c;所以#xff0c;postman不是很好用。
就想着哪个方式好一些#xff0c;主要是有选择图片的操作#xff0c;所以#xff0c;在Electron和A…最近在搞一个国产麒麟系统的接口对接因为接口内含复杂的签名验证而且还是离线环境所以postman不是很好用。
就想着哪个方式好一些主要是有选择图片的操作所以在Electron和Avalonia中做选择其他的很少支持linux系统的。
综合考虑还是选择Avalonia毕竟原生开发xaml也跟WPF基本一致所以就来个Avalonia做了试了下效果还是很不错的。
这里只做一个简单的窗体能在麒麟桌面跑其他的可以参考WPF。
Avaloia安装
打开 Visual Studio 2022 选择扩展菜单 选择扩展管理器 在扩展管理器里输入 Avalonia 关键词然后把扩展都安装了。 然后选择安装就会显示下面安装程序需要关闭vs才可以重复两次 安装完毕会显示成功信息。
创建 Avaloia 项目
先新建 Avaloia c# Project项目作为默认项目。 我这边默认选择桌面应用。 这个设计模式design pattern 分为了两种实际上就是MVVM的实现方式吧ReactiveUI和Community toolkit相对来讲community toolkit应该跟WPF差不多我就选择了这个。 剩下的都选应该也没啥问题都是绑定了资源嵌入之类的。 创建完就是下面这个项目整体结构简单也不复杂。 我们F5 运行起来项目是这样的我增加了点中文显示。
部署到麒麟系统
项目右键发布我设置了以下相关配置。
把生成的文件直接复制到目标系统上 麒麟系统信息 运行项目
直接双击 AvaloniaApplication1.Desktop 会打开 文本编辑器。 所以我们需要修改名称为 AvaloniaApplication1,然后授予执行权限就可以运行了. 双击应用选择直接运行。 然后会发现什么都没有太不正常了。
这个时候只能命令行执行 真是出现了异常大概意思是字体异常。
字体异常处理
在linux上不一定有默认的字体那么就需要导入相关字体这里我选择了阿里云的商用免费字体。
访问 https://www.alibabafonts.com/#/font下载你喜欢的字体 下载完后大致是这个东西 只选择.ttf格式的文件就可以了如下图所示 放到资源文件夹里就像这样我只放了一个放的多文件就越大。 还需要设置资源的嵌入类型为 AvaloniaResource 如何获取字体的家族名字
需要一个工具叫做 FontForge 下载地址: https://fontforge.org/en-US/downloads/windows-dl/
运行程序选择你的字体文件 点击ok就可以打开这个界面 点击 element选择 font info
就可以看到字体的相关信息了
引入离线字体
需要在入口处增加字体扩展
public static class AvaloniaAppBuilderExtensions
{public static AppBuilder UseFontAlibaba([DisallowNull] this AppBuilder builder, ActionFontSettings? configDelegate default){var setting new FontSettings();configDelegate?.Invoke(setting);return builder.With(new FontManagerOptions{DefaultFamilyName setting.DefaultFontFamily,FontFallbacks new[]{new FontFallback{FontFamily new FontFamily(setting.DefaultFontFamily)}}}).ConfigureFonts(manager manager.AddFontCollection(new EmbeddedFontCollection(setting.Key, setting.Source)));}public class FontSettings{public string DefaultFontFamily fonts:AvaloniaApplication1FontFamilies#Alibaba PuHuiTi;public Uri Key { get; set; } new Uri(fonts:AvaloniaApplication1FontFamilies, UriKind.Absolute);public Uri Source { get; set; } new Uri(avares://AvaloniaApplication1/Assets/Fonts, UriKind.Absolute);}
}然后在此处引用即可其中 DefaultFontFamily 的内容我并没有深入大体分为了三部分
fonts:AvaloniaApplication1FontFamilies#Alibaba PuHuiTifonts: //字体标识
AvaloniaApplication1FontFamilies# //自定义字体家族
Alibaba PuHuiTi //字体家族名称 Alibaba PuHuiTi 3.0 65 Medium Alibaba PuHuiTi 就可以了修改后重新发布麒麟
可以看到已经能运行了。
git地址
https://github.com/kesshei/AvaloniaDemo
https://gitee.com/kesshei/AvaloniaDemo资源链接
https://www.alibabafonts.com/#/font
https://fontforge.org/en-US/downloads/windows-dl/参考链接
https://www.cnblogs.com/wdw984/p/17717864.html