非ASCII字符支持

.Net Core和.Net 5.0默认只支持ASCII字符。因此要在 .Net Core和.Net 5.0 程序中使用非ANSI编码,需要在程序入口(例如Program.cs)中添加如下代码:

Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

字体设置

跨平台字体设置

Avalonia的样式类似于XAML+CSS的结合。由于不同平台上,默认安装的字体不同,因此,对字体设置可以使用如下方法:

<TextBox Text="Demo" FontFamily="宋体,Simsun,微软雅黑,Microsoft YaHei,苹方-简,宋体-简"/>

运行时会从第一个字体开始寻找,直到找到对应的本体字体为止。注意,与浏览器不同,若字体被找到,但不包含部分字符,Avalonia不会顺位向后寻找,而是会以方框占位。

使用本地字体

例如本地字体文件名为Centaur.ttf,内置字体名为Centaur,存放在当前项目下的Assets/Fonts中,则本地字体的使用方式如下(Avalonia开发团队 2018):

<TextBox Text="Demo" FontFamily="/Assets/Fonts/Centaur.ttf#Centaur"/>

.ttc文件可能无法以如上方式加载。

参考文献

Avalonia开发团队 (2018). Custom font support. https://github.com/AvaloniaUI/Avalonia/pull/1564