You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET MAUI Blazor无法修改默认字体?恳请确认问题

解决.NET MAUI Blazor中CSS引入本地字体失效的问题

可能的触发原因

  1. 字体文件的嵌入资源配置错误,导致WebView无法寻址到文件
  2. CSS中字体路径写法不符合MAUI Blazor的资源加载规则
  3. WebView2版本更新后,本地资源的访问逻辑发生变化

具体修复步骤

1. 正确配置字体文件属性

把下载的字体文件(例如Roboto-Regular.ttf)放到Blazor项目的wwwroot/fonts目录下,然后在文件属性窗口设置:

  • 生成操作:Embedded resource
  • 复制到输出目录:如果较新则复制

2. 修正CSS字体引入路径

在wwwroot/css/app.css中使用相对路径正确引入字体,示例代码:

@font-face {
    font-family: 'Roboto';
    src: url('../fonts/Roboto-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

/* 全局应用自定义字体 */
body {
    font-family: 'Roboto', sans-serif;
}

3. 确认MAUI项目资源注册完整性

在MauiProgram.cs中检查是否已正确注册BlazorWebView服务(默认模板已包含,若手动修改过需确认):

builder.Services.AddMauiBlazorWebView();
#if DEBUG
builder.Services.AddBlazorWebViewDeveloperTools();
#endif

4. Windows平台WebView2特殊处理

如果仅Windows平台出现问题,可在Platforms/Windows/App.xaml.cs中配置虚拟主机映射来兼容WebView2的资源访问:

protected override void OnLaunched(LaunchActivatedEventArgs args)
{
    base.OnLaunched(args);
    var blazorWebView = Window.Content as BlazorWebView;
    if (blazorWebView?.WebView is WebView2 webView2)
    {
        webView2.CoreWebView2InitializationCompleted += (s, e) =>
        {
            webView2.CoreWebView2.SetVirtualHostNameToFolderMapping(
                "fonts.local", "wwwroot/fonts", 
                CoreWebView2HostResourceAccessKind.Allow);
        };
    }
}

同时修改CSS中的字体路径为虚拟主机地址:

src: url('https://fonts.local/Roboto-Regular.ttf') format('truetype');

验证方式

运行项目后,打开WebView调试工具(Windows按F12,移动端可通过MAUI远程调试功能),在Network标签下查看字体文件的加载状态,返回200即说明路径配置正确。


内容的提问来源于stack exchange,提问作者perfectcode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 23:29:59