1、安装环境及入门资料参考

笔记

依赖环境

  • Visual Studio 2022

  • Avalonia for Visual Studio 2022扩展

参考资料

官网:https://avaloniaui.net/
文档:https://docs.avaloniaui.net/
示例:https://play.avaloniaui.net/

入门参考

参考网址:https://blog.csdn.net/u012563853/article/details/128020416

注意:使用Avalonia 0.10.18版本,暂时不要升级到11.0.0.4版本。11版本

为Avalonia应用创建快捷方式和图标

Avalonia应用编译以后会在BIN文件夹下生成一个与项目同名的文件,在终端下执行这个文件,其实就能打开这个应用

以你应用名称创建一个.desktop文件,.desktop文件的内容:

[Desktop Entry]
Name=TodoList
Type=Application
Exec=/应用程序路径/应用程序名称
Icon=/应用程序路径/应用程序图标名称
Terminal=true
Categories=Office

其实Name是应用的名称,

Type表明类型,一般都是Application

Exec是你的应用的具体路径

Icon是应用的图标,用来在桌面上显示,一般png格式或ico。

Terminal表明是否为终端软件,Avalonia应用设置为true,不然的话会打开又立马关闭。

Categories用来标识是什么类型的应用

打包命令

  dpkg -b "packTest"(要打包的目录) "ZBGJAvaProduct.deb"(安装包名称)

安装命令

    dpkg -i --force-overwrite ZBGJAvaProduct.deb(安装包名称)

其它常用的Linux命令

sudo: 使用管理员权限
chmod 777:修改文件权限

ls:显示文件或目录 (ls -l: 列出文件详细信息; ls -a: 显示所有文件)

mkdir:创建目录

cd:切换目录

echo:创建带有内容的文件

cat:查看文件内容

rm:删除文件

ln -s: 软连接

常见问题

字体问题:国产系统默认情况下没有Windows的字体

1、运行报错‘Default Font Family can’t null or empty’

需要实现IFontManagerImpl一个自定义类

解决方案参考地址:https://www.cnblogs.com/joyandjoys/p/14346935.html

2、Aspose生成的pdf文件乱码

windows系统下和国产系统下字体路径不同

Aspose.Words.Document doc = GetDocument(srcFilePath);
//获取字体路径
string fontsfolder = string.Format(@"{0}/fonts/", System.Environment.
GetEnvironmentVariable("WINDIR"));

if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
       fontsfolder = "/usr/share/fonts";
}
加载字体
FontSettings.DefaultInstance.SetFontsFolder(fontsfolder, true);

doc.FontSettings = FontSettings.DefaultInstance;

样式问题:表格控件无法加载

原因是需要加载DataGrid或TreeDataGrid的样式文件,在APP.xaml里面增加下面一段话

 <Application.Styles>        
        <StyleInclude Source="avares://Avalonia.Controls.DataGrid/Themes/Default.xaml"/>
        <StyleInclude Source="avares://Avalonia.Controls.TreeDataGrid/Themes/Fluent.axaml"/>
    </Application.Styles>

问题4:Aspose生成的pdf文件乱码

windows系统下和国产系统下字体路径不同


路径问题:国产系统下路径不正常的问题

程序在Windows系统下测试良好,但是在Ubuntu系统上却无法正常运行,看了一下,是文件路径的问题。

因为客户端在Windows下运行的,客户端上传的路径里的“”需要换成“/”。写了一个路径转换函数:

问题6:上传文件乱码问题

压缩文件里面会出现右斜杠

当window客户端上传后,在国产操作系统下载,会导致解压缩失败。因为window上传的路径“/”路径在Linux下无法识别,需要统一用linux系统下的路径“/”

问题7:线程方法访问UI控件,需要用UIThread.InvokeAsync

 Dispatcher.UIThread.InvokeAsync(new Action(() =>

 {}));

问题8:压缩文件错误

(1)当window客户端上传后,在国产操作系统下载,会导致解压缩失败。因为window上传的路径“/”路径在Linux下无法识别,需要统一用linux系统下的路径“\”

 Path.GetFileName(file) + Path.AltDirectorySeparatorChar;

编码问题:因为window下面默认编码是GB2312,linux下面默认编码是UTF-8,会导致两边显示不一致

1、代码文件在window下显示正常,在linux下面显示乱码

解决方法:工程里面添加一个EditorConfig文件

root = true
# All files
[*]
indent_style = space

# Xml files
[*.xml]
indent_size = 2
[*]
charset = utf-8
2、压缩文件在windows下如果有中文命名的文件名称,在Linux下面会显示乱码
ZipEntry.IsUnicodeText= true;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@HuGe

捐款买咖啡,更新飞快!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值