Win UI3开发笔记(八)多语言切换

时间:2024-03-06 08:16:32

要实现的目标:checkbox选定什么语言,当前应用程序的文字就是这一门语言。
步骤如下:

  1. 参考现有的一个程序的代码,先定义资源文件。
    如果只有一个按钮、一个文本、一个列表框的话
    新建String
    在这个文件夹下定义en-us,zh-cn
    添加新建项,resw文件,文件中的属性与该语言对应的值如下:
    在这里插入图片描述
  2. xaml中关联的时候使用x:UID关联
<TextBlock x:Uid="testLanguage_txtblock"
           VerticalAlignment="Center"/>

然后,当前显示的是中文:
在这里插入图片描述

  1. 如何在后端写程序,选择english的时候切换成英文呢?
    首先参考一个github网站:
    https://github.com/microsoft/WindowsAppSDK/discussions/1404
 protected override void OnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs args)
 {
     ApplicationLanguages.PrimaryLanguageOverride = "en-US";
     m_window = new MainWindow();
     m_window.Activate();
 }

达到的效果:显示英文,必须要在最开始设置,如果设置在m_window = new MainWindow();后边就不能显示英文了。
在这里插入图片描述
看的好多软件更改语言就是重启后生效,难道就是这一句话解决的事情嘛,,,,,

试了一下,好像真的可以解决,直接在改变的函数里加上这一句话,然后重启软件就ok了。
不知道会不会有什么隐藏的问题。