首页 > 其他分享 >Avalonia开发笔记

Avalonia开发笔记

时间:2023-07-24 20:24:15浏览次数:53  
标签:控件 Code 版本 笔记 VS 开发 options Avalonia

官网:
https://avaloniaui.net/

源码:
https://github.com/AvaloniaUI/Avalonia

目前最新版本:11.0.0 (2023/7/24)

最新的11.0.0版本相对于之前的版本,改动比较大。因为刚刚升级,可能还有一些问题。
目前基于Avalonia的控件都已经升级,不过也有一些控件是还没有升级的,类似OxyPlot.Avalonia。

目前我们已经拿Avalonia做了好几个跨平台的项目。跟WPF非常相似,还是挺不错的。
并且这个平台一直在更新,从开始接触到现在,也是已经升级了好多个版本。
很多第三方的控件和开发库都基于Avalonia进行了移植。常规的开发基本上没啥问题。
类似曲线图等控件,可选用OxyPlot或LiveCharts2。

编辑器推荐

Visual Studio 2022 + Avalonia for Visual Studio 2022

需要安装一个插件,但是XAML界面下,代码提示功能比较弱,基本上算没有,写起来不是很方便。

JetBrains Rider

目前最新版本是2021版本,本身是商用,可以试用30天。JetBrains Rider的代码提示功能做得挺不错的,不过代码调试有时候没VS方便,可以两个IDE结合起来使用。
如果是在Linux系统下开发,因为没有VS编译器可用,感觉JetBrains Rider会是最好的选择,相比较VS Code,集成度会更高,代码提示等方面都会做得更好一点。

VS Code

VS Code开源免费,各个操作系统都支持,在Linux等操作系统下也是一个不错的选择。可以用VS Code编辑代码,然后用dotnet来编译执行。
不过我用的比较少,现在大部分时候还是在Windows上开发完,然后拿到Linux上执行和调试。

系统测试情况

目前试了一下,能够正常运行的系统,除了Windows系统外,流行的Ubuntu,Centos,Redhat这些系统应该都没啥问题。
目前因为国产化要求,经常需要运行在银河麒麟系统下,目前测试了没有啥问题。
在Linux系统可能会出现因为找不到字体运行失败的问题,需要指定一下字体。
Avalonia 11.0.0版本之后,处理的方式会有差异。

Avalonia的应用可以打包成deb安装包。也可以基于软件包设置桌面图标,操作方法参考:

Ubuntu系统下为Avalonia应用创建桌面图标 - wzwyc - 博客园
https://www.cnblogs.com/wzwyc/p/14820893.html

FAQ常见问题解决

1、“Default font family name can't be null or empty.”报错

Avalonia 11.0.0的处理方式:

public static AppBuilder BuildAvaloniaApp()
{
    var Settings = AppSettings.Instance;
    FontManagerOptions options = new();
    if (OperatingSystem.IsLinux())
    {
        options.DefaultFamilyName = Settings.LinuxFamilyName;
    }
    else if (OperatingSystem.IsMacOS())
    {
        options.DefaultFamilyName = Settings.MacOSFamilyName;
    }
    else if (OperatingSystem.IsWindows())
    {
        options.DefaultFamilyName = Settings.WindowsFamilyName;
    }

    return AppBuilder.Configure<App>()
                .UsePlatformDetect()
                .LogToTrace()
                .WithInterFont()
                .UseReactiveUI()
                .With(options);
}

标签:控件,Code,版本,笔记,VS,开发,options,Avalonia
From: https://www.cnblogs.com/wzwyc/p/17578218.html

相关文章

  • IPFS开发
    服务端下载https://github.com/ipfs/ipfs-desktop/releasesWindows版本是下载exe的安装程序。服务端安装安装的步骤参照官方的说明文档,应该是默认安装就可以了。https://docs.ipfs.tech/install/ipfs-desktop/#windowsIPFS客户端Nuget包的安装Install-PackageIpfs.Http.C......
  • hadoop-eclipse开发环境搭建及error: failure to login错误
    对于Hadoop开发者来讲,通过JAVAAPI编程是进入Map-Reduce分布式开发的第一步。由于Eclipse本身并没有提供对MapReduce编程模式的支持,所以需要一些简单的步骤来实现。1.安装Hadoop。本文的Hadoop是部署在虚拟机上的伪分布模式。相关软件环境如下:JDK:sunjdk1.6.0_30Hadoop:hadoop-0......
  • 使用 Eclipse Dali 开发 OpenJPA 应用
    简介:JPA(JavaPersistenceAPI)是EJB3.0新引入的数据持久化编程模型。JPA充分利用了注释(Annotation)和对象/关系映射,为数据持久化提供了更简单、易用的编程方式。OpenJPA是Apache组织提供的JPA标准实现。本文是使用ApacheOpenJPA开发EJB3.0应用系列的第七部分,主要......
  • 关于菜鸡学习RHEL8的一些小笔记--->linux上的ssh远程
    远程:*在日常使用中,windows系统可以使用远程桌面来管理远程的windows操作系统*而在Linux上,可以使用openssh套件来进行管理(默认安装)在openssh上是使用安全加密的套接字通信方式openssh:openssh是一个典型的C/S架构,同时拥有openssh-clent客户端以及openssh-server服务端,如下所示:通过ssh......
  • 【深入浅出Spring原理及实战】「夯实基础系列」360全方位透析和探究SpringEL的开发实
    Spring表达式语言(SpEL)本文将介绍SpEL的功能、API和语言语法。概念介绍Spring表达式语言(SpEL)是一种功能强大的表达式语言,用于在运行时查询和操作对象图。它的语法与UnifiedEL相似,但提供了更多功能,其中最主要的是方法调用和基本的字符串模板功能。技术无关性虽然还有其他几......
  • vue 笔记暂存
    目录1:什么是Vue.js2:MVC和MVVM。3:为什么要学习前段框架4:框架和库的区别5:怎么使用Vue。6:常见的Vue指令7: 五大事件修饰符8:在vue中使用class样式9:使用内联样式 10:v-for指令11:v-if和v-show指令 小技巧:注意:总结:1:什么是Vue.js1.1:Vue.js 是目前最火的一个前端框架......
  • Python学习笔记:递归、闭包以及装饰器
    一、首先,什么是递归?首先,简单来说递归就是在运行的过程中不断调用自身,从而完成“递”和“归”两个过程。在Python当中递归函数也是这个道理,通过直接或者间接调用函数本身就叫递归函数。注:在Python中编写递归函数一定要有结束条件否则会导致内存溢出。1、Python案例:​ 首先......
  • 线性 DP、背包问题、区间 DP 学习笔记
    动态规划基础知识基本概念动态规划:解决多阶段决策过程最优化问题的一种方法。阶段:把问题分解成相互联系的有顺序的几个环节,这些环节即成为阶段。状态:某一阶段的出发位置称为状态。通常一个阶段包含若干状态。决策:从某阶段的一个状态演变到下一个阶段某状态的选择。策略:由开......
  • 树状数组学习笔记
     树状数组真的很精美,码量小,还很快,比线段树快多了[滑稽]。一维树状数组单点修改,区间查询例题:loj#130.树状数组1louguP9974【模板】树状数组1不多说,代码:#include<bits/stdc++.h>usingnamespacestd;constintN=5e5+5;intn,m,c[N];intlowbit(intk){......
  • ChatGPT学习笔记2
    前排提醒,本文内容重点是打卡学习,也就是本人自用的笔记,可能逻辑会不太清晰,如果是有心想要学习的话,可以去看看大佬整理的这笔记目录前言《条件是否满足》《给定步骤来补全》《让模型先梳理再给结论》前言今天来进行昨天所说的实践。于我而言,学习的过程就是了解->动手尝试->发现......