非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