.NET Maui - 可以从服务器端下载字体吗?而不是存储在项目中?

问题描述 投票:0回答:1

我知道如何在 MauiProgram.cs

中以标准方式使用字体

但是我想看看是否可以从服务器端下载字体,然后以编程方式绑定它,但到目前为止还没有成功。这是我尝试实现的一些代码。

public async Task<string> DownloadAndSetFontAsync(string fontName, string fontTechnicalName)
 {
     var fontPath = Path.Combine(FileSystem.CacheDirectory, $"{fontTechnicalName}.ttf");
     using var client = new HttpClient();
     var fontData = await client.GetByteArrayAsync("https://xxxxxx/fonts/"+ fontTechnicalName +".ttf");
     await File.WriteAllBytesAsync(fontPath, fontData);
     return GetFontName(fontPath);
 }

上面的代码成功地将字体下载到用户缓存,但即使在引发属性时也不会在前端呈现?有什么想法吗?

.net fonts download filesystems maui
1个回答
0
投票

示例:

public MainPage(IFontRegistrar fontRegistrar)
{
    ...
    if(useMaterial3)
        fontRegistrar.Register("MaterialIcons-3.ttf", "Icons");
    else 
        fontRegistrar.Register("MaterialIcons-2.ttf", "Icons");
    ...
}

<Label Text="{x:Static local:MaterialIconsFont.Engineering}" FontFamily="Icons" FontSize="40"/>

这对我有用。

它在运行时注册不同的字体。内部(临时)应用程序的运行时间,如果有一天它停止工作,没有一个人会错过它。

我不会为生产应用程序编写类似的东西,即使我的生活依赖于它。

附加免责声明: 我确实阅读了你的问题,并且我理解“下载”部分。我想指出注册部分以及加载 XAML 时如何解决它。

我知道它并不能真正回答你的问题,但你可能会发现它很有用。

© www.soinside.com 2019 - 2024. All rights reserved.