回车,看到.NET Core的输出信息,证明安装和配置.NET Core环境没有问题。
五、使用VS2022建立Avalonia桌面项目
在安装完Avalonia插件和模板后,我们在创建新的项目的时候,可以直接搜索avalonia关键字,直接创建一个Avalonia C# Project,会有创建向导,按照向导提示一步一步创建完毕。
点击Create按钮后,稍等片刻即可完成项目创建,我们把创建的带Desktop结尾的项目设置为启动项目,然后我们直接F5运行项目,没有意外的话会看到一个界面,一句英文提示。 六、解决Avalonia桌面项目在openKylin下报Default font name can't be null or empty的问题
我们把ViewModels\MainViewModel.cs把英文的文字改成中英混合的文字。
会看到经典的 Default font name can't be null or empty. 的错误提示:
可见目前它对中文Linux系统的默认字体支持不太好,有的解决办法是给操作系统设置为英文,但我们国产系统目标群体绝大部分都需要使用中文环境。因此我们在开发项目时自己指定一下项目要用的默认字体来解决这个问题。
这里我们选用阿里巴巴的免费可商用的字体==>阿里巴巴普惠体:https://www.alibabafonts.com/#/font
下载后按照下面目录结构放入字体文件(也可自定义其它路径,只要代码中的路径做出对应调整即可)
在Desktop项目中新建两个类文件
FontSettings.cs
public class FontSettings
{
public string DefaultFontFamily = "fonts:MyDesignFontFamilies#Alibaba PuHuiTi 2.0";
public Uri Key { get; set; } = new Uri("fonts:MyDesignFontFamilies", UriKind.Absolute);
public Uri Source { get; set; } = new Uri("avares://StudyAvalonia.Desktop/Assets/Fonts/AliBaba", UriKind.Absolute);
}
复制代码
AvaloniaAppBuilderExtensions.cs
1 public static class AvaloniaAppBuilderExtensions
2 {
3 public static AppBuilder UseFontAlibaba([DisallowNull] this AppBuilder builder, Action<FontSettings>? configDelegate = default)
4 {
5 var setting = new FontSettings();
6 configDelegate?.Invoke(setting);
7
8 return builder.With(new FontManagerOptions
9 {
10 DefaultFamilyName = setting.DefaultFontFamily,
11 FontFallbacks = new[]
12 {
13 new FontFallback
14 {
15 FontFamily = new FontFamily(setting.DefaultFontFamily)