windows 在.NET MAUI中使用粗体和斜体以外的字体属性

rta7y2nd  于 2023-03-19  发布在  Windows
关注(0)|答案(1)|浏览(204)

我正在尝试使用Windows系统上安装的字体样式。该字体有粗体和斜体两种,但也有用于浅色和黑色以及它们的排列的TTF文件。FontAttributes是一个枚举,只允许NoneBoldItalic,或它们的组合。如何引用不同的样式,如“黑色”?
我需要使用系统上安装的字体,因为.NET MAUI错误阻止将字体嵌入到未打包的应用程序中。https://github.com/dotnet/maui/issues/9104

vsdwdz23

vsdwdz231#

如果你想改变窗口的字体,你可以使用Fontfamily
首先,你应该注册字体文件.

namespace MyMauiApp
{
    public static class MauiProgram
    {
        public static MauiApp CreateMauiApp()
        {
            var builder = MauiApp.CreateBuilder();
            builder
                .UseMauiApp<App>()
                .ConfigureFonts(fonts =>
                {
                    fonts.AddFont("Lobster-Regular.ttf", "Lobster");
                });

            return builder.Build();
        }
    }  
}

其次,可以按平台设置字体属性。OnPlatform和On类可在XAML中用于按平台设置字体属性。下面的示例设置不同的字体系列和大小:

<Label Text="Different font properties on different platforms"
       FontSize="{OnPlatform iOS=20, Android=22, WinUI=24}">
    <Label.FontFamily>
        <OnPlatform x:TypeArguments="x:String">
            <On Platform="iOS" Value="MarkerFelt-Thin" />
            <On Platform="Android" Value="Lobster-Regular" />
            <On Platform="WinUI" Value="ArimaMadurai-Black" />
        </OnPlatform>
    </Label.FontFamily>
</Label>

相关问题