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

如何在WinUI3应用运行时切换显示语言?

WinUI3 运行时切换显示语言实现

完整代码实现

MainWindow.xaml(保持你现有代码即可)

<ComboBox x:Name="LanguangeMode" SelectionChanged="Language_SelectionChanged">
    <ComboBoxItem Content="English"/>
    <ComboBoxItem Content="Simplified Chinese"/>
</ComboBox>

MainWindow.xaml.cs(补充切换逻辑)

using System.Globalization;
using Windows.Globalization;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;

private void Language_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    var comboBox = sender as ComboBox;
    if (comboBox == null) return;

    CultureInfo targetCulture = comboBox.SelectedIndex switch
    {
        0 => new CultureInfo("en-US"),
        1 => new CultureInfo("zh-CN"),
        _ => CultureInfo.CurrentUICulture
    };

    // 配置应用语言
    CultureInfo.CurrentUICulture = targetCulture;
    ApplicationLanguages.PrimaryLanguageOverride = targetCulture.Name;

    // 重启主窗口使语言变更生效
    var currentWindow = Application.Current.Windows[0] as Window;
    if (currentWindow != null)
    {
        currentWindow.Content = new MainWindow();
        currentWindow.Activate();
    }
}

关键说明

  • 资源文件规范:确保你的多语言资源文件命名正确,默认英文用Resources.resw,简体中文用Resources.zh-CN.resw,所有需要翻译的文本都绑定到资源文件对应的键。
  • 语言生效逻辑:WinUI3不会自动刷新现有控件的资源绑定,重启窗口是最直接可靠的生效方式;如果不想重启窗口,需手动遍历所有控件更新绑定,操作复杂度高且容易遗漏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 12:20:03