Avalonia 中文乱码小记

主要是记录自己遇到的情况.

 

1, axaml文件编码

  我折腾半天才发现在axaml文件中设置的中文,不论怎么弄都是乱码.在vs2026 右下角找一下如图, 如果不是UTF-8 with BOM, 那就把在vs选项中, 搜索编码.

image

 

image

 

2, 自定义字体.

   我测试了阿里普惠字体, 思源, 方正, 都是报错

  System.InvalidOperationException:“Could not create glyphTypeface. Font family: $Default (key: ). Style: Normal. Weight: Normal. Stretch: Normal”

  或者是Font family: 具体的路径.

  只有小米的字体, MiSans 的  MiSans-Normal.ttf 不报错.  就是同样是小米的字体, 换成MiSans-Light.ttf 都还是报错.

  在App.axaml 添加

<Application.Resources>
<FontFamily  x:Key="MiSans">avares://你的项目名称/Fonts/MiSans-Normal.ttf#MiSans</FontFamily>
</Application.Resources>

并且把文件的属性设置为AvaloniaResource

image

给具体的控件设置字体.

<TextBlock x:Name="TextBlockHeiTi" FontFamily="{StaticResource MiSans}">中文</TextBlock>

 

 2.1 设置全局

  

 //Program.cs

 public static AppBuilder BuildAvaloniaApp()
{
  var defau= new FontManagerOptions{ DefaultFamilyName = "黑体" }; //声明
    return AppBuilder.Configure<App>()
                .UsePlatformDetect()
                .WithInterFont()
                .With(defau)   //这里
                .LogToTrace();
}

 

posted @ 2025-12-26 02:19  蓝星long朽  阅读(466)  评论(0)    收藏  举报