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

Windows平台Blazor Hybrid无法配置CultureInfo问题求助

解决Windows Blazor Hybrid WebView2强制使用en-us区域的问题

方法1:全局配置WebView2区域

在应用启动配置代码中(比如Program.cs),注册BlazorWebView时直接指定WebView2的语言参数,从根源上覆盖en-us默认值:

builder.Services.AddWindowsFormsBlazorWebView(options =>
{
    options.HostPage = "wwwroot/index.html";
    // 替换成你需要的区域代码,比如"pt-BR"(对应dd/MM/yyyy日期、逗号小数分隔)
    options.WebView2InitializationSettings.Language = "pt-BR";
});

WebView2会根据这个语言加载对应的区域规则,自动调整日期、数值的显示格式。

方法2:组件层面强制指定格式

如果全局配置没生效,可以在单个Blazor组件里手动设置区域:

  • 日期输入绑定指定格式:
@using System.Globalization

<input type="date" @bind="SelectedDate" @bind:format="dd/MM/yyyy" />

@code {
    private DateTime SelectedDate { get; set; } = DateTime.Now;

    protected override void OnInitialized()
    {
        // 强制设置当前线程的区域
        CultureInfo.CurrentCulture = new CultureInfo("pt-BR");
        CultureInfo.CurrentUICulture = new CultureInfo("pt-BR");
    }
}
  • 数值输入用InputNumber指定区域:
@using System.Globalization

<InputNumber @bind-Value="NumericValue" Culture="@new CultureInfo("pt-BR")" />

@code {
    private decimal NumericValue { get; set; } = 1234.56m;
}

方法3:清除WebView2缓存区域设置

如果WebView2缓存了旧的en-us区域配置,可以指定新的用户数据目录,避免缓存干扰:

options.WebView2InitializationSettings.UserDataFolder = Path.Combine(
    Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), 
    "YourAppName", 
    "WebView2NewData"
);

配合方法1的Language设置一起使用,确保加载全新的区域配置。

注意:如果以上方法都不生效,检查WebView2运行时是否为最新版本,旧版本可能存在区域配置的兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 21:45:10